IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> MOOC《Python语言程序设计》(第15次)组合数据类型(第六周) -> 正文阅读

[Python知识库]MOOC《Python语言程序设计》(第15次)组合数据类型(第六周)

MOOC《Python语言程序设计》(第15次)

组合数据类型(第六周)21.8.5

练习题

实例9:基本统计值计算

def getNum():       #获取用户不定长度的输入
    s = input()
    ls = list(eval(s))
    return ls

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):    #计算中位数
    numbers.sort()
    size = len(numbers)
    if size % 2 == 0:
        med = (numbers[size//2-1] + numbers[size//2])/2
    else:
        med = numbers[size//2]
    return med

n =  getNum() #主体函数
m =  mean(n)
print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m, dev(n,m),median(n)))

实例10:文本词频统计 – Hamlet

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))  输出出现最多的10个单词和其出现次数
    print (word)  #输出出现最多的10个单词

人名独特性统计

s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 
       杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 
       金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 
       鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 
       阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 
       乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 
       忽必烈 慕容复 张三丰 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 
       李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 
       逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 
       洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 
       黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 
       张三丰 令狐冲 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 
       洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 
       完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 
       郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 
       谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 
       双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 
       逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄'''

print(len(set(s.split())))

字典翻转输出

# 方法一:
din = eval(input())
try:
    dout={value : key for key,value in din.items()}
    print(dout)
except:
    print('输入错误')
    
# 方法二:
s = input()
try:
    d = eval(s)
    e = {}
    for k in d:
        e[d[k]] = k
    print(e)
except:
    print("输入错误")

《沉默的羔羊》之最多单词

# 方法一
import jieba
txt = open("沉默的羔羊.txt", "r", encoding='utf-8').read()
words  = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1: # 1个字的直接跳过
            continue
    else:
        counts[word] = counts.get(word,0) + 1
items = list(counts.items())    # 提取键和值,转换为列表类型
items.sort(key=lambda x:x[1], reverse=True)
print(items[0][0])

# 方法二
import jieba
f = open("沉默的羔羊.txt", encoding='utf-8')
ls = jieba.lcut(f.read())
d = {}
for w in ls:
        if len(w) >= 2:
            d[w] = d.get(w, 0) + 1
maxc = 0
maxw = ""
for k in d:
    if d[k] > maxc :
        maxc = d[k]
        maxw = k
    elif d[k] == maxc and k > maxw:
        maxw = k
print(maxw)
f.close()

单向选择题

1、关于Python的元组类型,以下选项错误的是:????????????????????????????????????????????????????????????????????????????????????????????????

A、元组采用逗号和圆括号(可选)来表示

B、一个元组可以作为另一个元组的元素,可以采用多级索引获取信息

C、元组一旦创建就不能被修改

D、元组中元素必须是相同类型

正确答案 D
序列类型(元组、列表)中元素都可以是不同类型。

2、哪个选项是下面代码的输出结果?????????????????????????????????????????????????????????????????????????????????????????????????

d={'a':1,'b':2,'b':3}
print(d['b'])

A、1

B、‘b’= 2

C、2

D、3

正确答案 D

创建字典时,如果相同键对应不同值,字典采用最后(最新)一个"键值对"。

3、关于Python组合数据类型,以下描述错误的是:????????????????????????????????????????????????????????????????????????????????????????????????

A、组合数据类型可以分为3类:序列类型、集合类型和映射类型

B、组合数据类型能够将多个相同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易

C、序列类型是二维元素向量,元素之间存在先后关系,通过序号访问

D、Python的字符串、元组和列表类型都属于序列类型

正确答案 C

序列类型总体上可以看成一维向量,如果其元素都是序列,则可被当作二维向量。

4、列表ls,哪个选项对ls.append(x)的描述是正确的?????????????????????????????????????????????????????????????????????????????????????????????????

A、只能向列表ls最后增加一个元素x

B、向列表ls最前面增加一个元素x

C、向ls中增加元素,如果x是一个列表,则可以同时增加多个元素

D、替换列表ls最后一个元素为x

正确答案 A

ls.append(x),如果x是一个列表,则该列表作为一个元素增加的ls中。

5、给定字典d,哪个选项对x in d的描述是正确的?????????????????????????????????????????????????????????????????????????????????????????????????

A、x是一个二元元组,判断x是否是字典d中的键值对

B、判断x是否是字典d中的值

C、判断x是否是在字典d中以键或值方式存在

D、判断x是否是字典d中的键

正确答案 D

键是值的序号,也是字典中值的索引方式。

因此,x in d 中的x被当作d中的序号进行判断。

6、序列s,哪个选项对s.index(x)的描述是正确的?????????????????????????????????????????????????????????????????????????????????????????????????

A、返回序列s中x的长度

B、返回序列s中元素x第一次出现的序号

C、返回序列s中元素x所有出现位置的序号

D、返回序列s中序号为x的元素

正确答案 B

注意:s.index(x)返回第一次出现x的序号,并不返回全部序号。

7、以下不是Python序列类型的是:????????????????????????????????????????????????????????????????????????????????????????????????

A、元组类型

B、列表类型

C、字符串类型

D、数组类型

正确答案 D

Python内置数据类型中没有数组类型。

8、关于大括号{},以下描述正确的是:????????????????????????????????????????????????????????????????????????????????????????????????

A、直接使用{}将生成一个字典类型

B、直接使用{}将生成一个列表类型

C、直接使用{}将生成一个集合类型

D、直接使用{}将生成一个元组类型

正确答案 A

集合类型和字典类型最外侧都用{}表示,不同在于,集合类型元素是普通元素,字典类型元素是键值对。

字典在程序设计中非常常用,因此,直接采用{}默认生成一个空字典。

9、给定字典d,哪个选项对d.values()的描述是正确的?????????????????????????????????????????????????????????????????????????????????????????????????

A、返回一个集合类型,包括字典d中所有值

B、返回一个元组类型,包括字典d中所有值

C、返回一个列表类型,包括字典d中所有值

D、返回一种dict_values类型,包括字典d中所有值

正确答案 D

运行如下代码:(其中d是一个预定义的字典)

python d={"a":1, "b":2}
type(d.values())

输出结果是:<class ‘dict_values’>

d.values()返回的是dict_values类型,这个类型通常与for…in组合使用。

10、S和T是两个集合,哪个选项对S^T的描述是正确的?????????????????????????????????????????????????????????????????????????????????????????????????

A、S和T的差运算,包括在集合S但不在T中的元素

B、S和T的补运算,包括集合S和T中的非相同元素

C、S和T的交运算,包括同时在集合S和T中的元素

D、S和T的并运算,包括在集合S和T中的所有元素

正确答案 B

集合"交并差补"四种运算分别对应的运算符是:& | - ^

程序设计题

数字不同数之和

'''
描述:
获得用户输入的一个整数N,输出N中所出现不同数字的和。????????????????????????????????????????????????????????????????????????????????????????????????
例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。
'''

ls = set(input())
sum=0
for i in ls:
    sum = sum + eval(i)
print(sum)

人名最多数统计

'''
描述:
编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。
'''

s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 
       杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 
       金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 
       鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 
       阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 
       乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 
       忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 
       李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 
       逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 
       洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 
       黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 
       张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 
       洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 
       完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 
       郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 
       谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 
       双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 
       逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
ls = s.split()
counts = {}
for name in ls:
    counts[name] = counts.get(name, 0) + 1
counts = list(counts.items())
counts.sort(key=lambda x:x[1], reverse=True)
print(counts[0][0])

学习笔记

1、集合类型及操作

1.1 集合类型定义

集合是多个元素的无序组合。

  • 集合用大括号{}表示,元素间用逗号分隔
  • 建立集合类型用{}或set,建立空集合必须使用set
  • 每个元素唯一,不存在相同元素
  • 集合元素不可更改,不能是可变数据类型

1.2 集合操作符

操作符及应用描述
S | T并,返回一个新集合,包括在集合S和T中的所有元素
S - T差,返回一个新集合,包括在集合S但不在T中的元素
S & T交,返回一个新集合,包括同时在集合S和T中的元素
S ^ T补,返回一个新集合,包括在集合S和T中的非相同元素
S <= T 或 S < T返回True/Flase,判断S和T的子集关系
S >= T 或 S > T返回True/False,判断S和T的包含关系

在这里插入图片描述

1.3 集合处理方法

操作函数或方法描述
S.add(x)如果x不在集合S中,将x增加到S
S.discard(x)移除S中元素x,如果x不在集合S中,不报错
S.remove(x)移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear()移除S中所有元素
S.pop()随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy()返回集合S的一个副本
len(S)返回集合S的元素个数
x in S判断S中元素x,x在集合S中,返回True,否则返回False
x not in S判断S中元素x,x不在集合S中,返回True,否则返回False
set(x)将其他类型变量转变为集合类型

1.4 集合类型应用场景

  • 包含关系比较
  • 数据去重:集合类型所有元素无重复

2、序列类型及操作

2.1 序列

序列的定义

序列是具有先后关系的一组元素

python的序列类型包括元组,列表,字符串

  • 序列是以为元素向量,元素类型可以不同
  • 类似数学元素序列:s0,s1,s2,…,s(n-1)
  • 元素间由序号引导,通过下标访问序列的特定元素

序列处理函数及方法

操作符及应用描述
x in s如果x是序列s的元素,返回Ture,否则返回Flase
x not in s如果x是序列s的元素,返回Flase,否则返回Ture
s + t连接两个序列s和t
s*n 或 n *s将序列s复制n次
s[i]索引,返回s中的第i个元素,i是序列的序号
s[i:j] 或 s[i: j: k]切片,返回序列s中第i到j以k为步长的元素子序列

序列的通用函数和方法

函数和方法描述
len(s)返回序列s的长度,即元素个数
min(s)返回序列s的最小元素,s中元素需要可比较
max(s)返回序列s的最大元素,s中元素需要可比较
s.index(x)或
s.index(x,i,j)
返回序列s从i开始到j位置中第一次出现元素x的位置
s.count(x)返回序列s中出现x的总次数

2.2 元组

元组的定义

元组是序列类型的一种扩展

  • 元组是一种序列类型,一旦创建就不能被修改
  • 使用小括号()或tuple()创建,元素间用逗号分隔
  • 可以使用或不适用小括号

元组的操作

  • 元组继承了序列类型的全部通用操作
  • 元组因为创建后不能修改,没有特殊操作
  • 可以使用或不使用小括号

2.3 列表

列表的定义

  • 列表是序列类型的一种扩展,十分常用
  • 使用方括号[]或list()创建,元素间用逗号分隔
  • 列表中各元素类型可以不同,无长度限制

列表的操作

函数描述
ls[i] = x替换列表ls第i元素为x
ls[i: j: k] = lt用列表lt替换ls切片后对应元素字列表
del ls[i]删除列表ls中第i元素
del ls[i: j: k]删除列表ls中第i到第j以k为步长的元素
ls += lt更新列表ls,将列表lt元素增加到列表ls中
ls *= n更新列表ls,其元素重复n次
方法
ls.append(x)在列表ls最后增加一个元素x
ls.clear()删除列表ls中所有元素
ls.copy()生成一个新列表,赋值ls中所有元素
ls.insert(i,x)在列表ls的第i位置增加元素x
ls.pop(i)将列表ls中第i位置元素取出并删除该元素
ls.remove(x)将列表ls中出现的第一个元素x删除
ls.reverse()将列表ls中的元素反转

列表功能实现

lt = []             # 定义空列表lt,[]
lt += [1,2,3,4,5]   # 向lt新增5个元素,[1,2,3,4,5]
lt[2] = 6           # 修改le中第2个元素,[1,2,6,4,5]
lt.insert(2,7)       # 向lt中第2个位置增加一个元素,[1,2,7,6,4,5]
del lt[1]           # 从lt中第一个位置删除一个元素,[1, 7, 6, 4, 5]
del lt[1:4]         # 删除lt中第1-3位置元素(包含3),[1, 5]
print(0 in lt)      # 判断lt中是否包含数字0,False
lt.append(0)        # 向lt新增数字0,[1, 5, 0]
lt.index(0)         # 返回数字0所在lt中的索引,2
len(lt)             # lt的长度,3
max(lt)             # lt中最大元素,5
lt.clear()          # 清空lt,[]

2.4 序列类型应用场景

元组用于元素不改变的应用场景,更多用于固定搭配场景

如果不希望数据被程序所改变,转换成元组类型

列表更加灵活,是最常用的序列类型

最主要作用:表示一组有序数据,进而操作它们

3、实例9:基本统计值计算

def getNum():   # 获取多数据输入
    nums = []
    inNumStr = input("请输入数字(回车退出):")
    while inNumStr != '':
        nums.append(eval(inNumStr))
        inNumStr = 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):    # 计算中位数
    numbers.sort()	# 排序
    size = len(numbers)
    if size % 2 == 0:
        med = (numbers[size//2-1]+numbers[size//2])/2
    else:
        med = numbers[size//2]
    return med

n = getNum()
m = mean(n)
print("平均值:{},方差:{:.2f},中位数:{}。".format(m,dev(n,m),median(n)))

4、字典类型及操作

4.1 字典类型定义

映射是一种键(索引)和值(数据)的对应

字典类型是“映射”的体现

  • 键值对:键是数据索引的扩展
  • 字典是键值对的集合,键值对之间无序
  • 采用大括号{ }和dict()创建,键值对用冒号:表示

4.2 字典处理函数及方法

函数或方法描述
del d[k]删除字典d中键k对应的数据值
k in d判断键k是否在字典d中,如果在返回True,否则返回False
d.keys()返回字典d中所有的键信息
d.values()返回字典d中所有的值信息
d.items()返回字典d中所有的键值对信息
方法
d.get(k, )键k存在,则返回相应值,不在则返回值
d.pop(k, )键k存在,则取出相应值,不在则返回值
d.popitem()随机从字典中d取出一个键值对,以元组形式返回
d.clear()删除所有的键值对
len(d)返回字典d中元素的个数

字典功能实现

d = {}                  # 定义空字典 d,{}
d['one'] = 1            # 向 d 中新增2个键值对元素,{'one': 1, 'two': 2}
d['two'] = 2
d['two'] = 'number 2'   # 修改第2个元素,{'one': 1, 'two': 'number 2'}
print('c' in d)         # 判断‘c’是否是d的键,False
print(len(d))           # 计算 d 的长度,2
d.clear()               # 清空 d,{}

4.3 字典类型应用场景

映射的表达

  • 映射无处不在,键值对无处不在,例如:统计数据出现的次数,数据是键,次数是值。
  • 最主要的作用:表达键值对数据,进而操作它们

元素遍历

for k in d:

? <语句块>

5、jieba库的使用

5.1 jieba库基本介绍

jieba是优秀的中文分词第三方库

  • 中文文本需要通过分词获得单个的词语
  • jieba是优秀的中文分词第三方库,需要额外安装
  • jieba库提供三种分词模式,最简单只需掌握一个函数

5.2 jieba库的安装(pycharm环境)

在File -> Settings -> Project Interpreter的库界面中点击右侧加号

在这里插入图片描述

在搜索框中输入jieba,点击左下角install,等待,完成后会提示安装成功。

在这里插入图片描述

5.3 jieba库使用说明

jieba分词具有三种模式

精确模式:把文本精确的切分开,不存在冗余单词

全模式:把文本中所有可能的词语都扫描出来,有冗余

搜索引擎模式:在精确模式基础上,对长词再次切分

函数描述
jieba.lcut(s)精确模式,返回一个列表的分词结果
>>> jieba.lcut(‘中国是一个伟大的国家’)
[‘中国’, ‘是’, ‘一个’, ‘伟大’, ‘的’, ‘国家’]
jieba.lcut(s,cut_all = True)全模式,返回一个列表类型的分词结果,存在冗余
>>> jieba.lcut(‘中国是一个伟大的国家’,cut_all=True)
[‘中国’, ‘国是’, ‘一个’, ‘伟大’, ‘的’, ‘国家’]
jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型的分词结果,存在冗余
>>> jieba.lcut_for_search(‘中国共和国是伟大的’)
[‘中国’, ‘共和’, ‘共和国’, ‘是’, ‘伟大’, ‘的’]
jieba.add_word(w)向分词词典增加新词w
jieba.add_word(‘蟒蛇语言’)

6、文本词频统计

Hamlet词频统计

# Hamlet词频统计

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))

《三国演义》人物出场统计(前十)

# 《三国演义》人物出场统计(前十)

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))

资料来源:
Python语言程序设计_北京理工大学_中国大学MOOC(慕课) https://www.icourse163.org/course/BIT-268001

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:01:58  更:2021-08-07 12:02:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 11:29:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码