EG:
2.3 元组类型及操作(元组是序列类型的一种扩展)EG:
元组继承序列的全部通用操作EG:
2.4 列表类型及操作 列表类型是序列类型的一种扩展,十分常用
EG:
2.4.1 列表类型操作函数和方法EG:
EG:
2.4.2 测试 sorted() 作为 Python 内置函数之一,其功能是对序列(列表、元组、字典、集合、还包括字符串)进行排序。 2.5 序列类型应用场景 2.5.1 元素遍历 2.5.2 数据保护 3 实例:基本统计值计算 3.1 问题分析方差计算公式: 3.2 代码
#获取多数据输入
def getnum():
nums=[]
inumstr=input("请输入数字(回车退出):")
while inumstr !="":
nums.append(eval(inumstr))
inumstr=input("请输入数字(回车退出):")
return nums
def mean(numbers):#计算平均值
s=0.0
for num in numbers:
s=s+num
return s/len(numbers)
def dev(numbers,mean):#平均方差
sdev=0.0
for num in numbers:
sdev=sdev+(num-mean)**2
return pow(sdev/len(numbers)-1,0.5)
def median(numbers):#计算中位数
sorted(numbers)
size=len(numbers)
if size%2==0:
med=(numbers[size//2-1]+numbers[size//2])/2
else:
med=num[size//2]
return med
n=getnum()
m=mean(n)
print("平均值:{},方差{:.2f},中位数:{}".format(m,dev(n,m),median(n)))
4 字典类型及操作
4.1 字典类型定义
4.2 字典类型的用法:在字典变量中,通过键获得值 EG: 4.3 字典处理函数及方法
EG:
EG:
4.4 测试 4.5 字典类型应用场景 4.5.1 映射的表达 4.5.2 元素遍历 4.6 总结 5 jieba库的使用 5.1 jieba库概述 5.2 jieba库安装 cmd:pip install jieba 5.3 jieba分词原理 5.4 jieba分词的三种模式 5.5 jieba库常用函数 6 文本词频统计 6.1 问题分析 6.2 英文词频 6.2.1 代码#CalHamletV1.py
def getText():
txt = open("hamlet.txt", "r").read()
txt = txt.lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~':
txt = txt.replace(ch, " ") #将文本中特殊字符替换为空格
return txt
hamletTxt = getText()
words = hamletTxt.split()
counts = {}
for word in words:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(10):
word, count = items[i]
print ("{0:<10}{1:>5}".format(word, count))
6.2.2 解析
1.counts[word]=counts.get(word,0)+1#是对进行计数word出现的频率进行统计,当word不在words时,返回值是0,当word在words中时,返回+1,以此进行累计计数。
6.3 汉文词频 6.2.1 代码1.0#CalThreeKingdomsV1.py
import jieba
txt = open("threekingdoms.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
else:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(15):
word, count = items[i]
print ("{0:<10}{1:>5}".format(word, count))
6.2.2 代码2.0
#CalThreeKingdomsV2.py
import jieba
excludes = {"将军","却说","荆州","二人","不可","不能","如此"}
txt = open("threekingdoms.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
elif word == "诸葛亮" or word == "孔明曰":
rword = "孔明"
elif word == "关公" or word == "云长":
rword = "关羽"
elif word == "玄德" or word == "玄德曰":
rword = "刘备"
elif word == "孟德" or word == "丞相":
rword = "曹操"
else:
rword = word
counts[rword] = counts.get(rword,0) + 1
for word in excludes:
del counts[word]
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(10):
word, count = items[i]
print ("{0:<10}{1:>5}".format(word, count))
注意
本文题目来源为Python123平台和中国大学MOCC的《Python语言程序设计》课程, 主讲老师:嵩天、黄天羽、礼欣。如有侵权,立删。



