当前位置:首页>java>python编程实战100例-3

python编程实战100例-3

  • 2026-10-21 13:28:42
python编程实战100例-3

实例3:文本分词

源代码:

import redef get_chart(text):    vlist = re.split(r'[:;,."\s]\s*', text)    vdic_frequency=dict()for vchart in vlist:if vchart  in vdic_frequency:            vdic_frequency[vchart]+=1else:            vdic_frequency[vchart]=1vdic_sort=sorted(vdic_frequency.items(), key=lambda item:item[1], reverse=True)return vdic_sortif __name__=='__main__':with open('xys.txt', 'r', encoding='utf-8') as f:        xys=f.read()    vstr=get_chart(xys)print('列出文本中的英文单词\n')print(vstr)

感悟:

对文本分词本质上就是先将tet文件分词,两种方式采用split函数直接分词与采用re.split函数分词,区别在于前者只能针对一个符号分词,后者可以进行多符号分词,所以多用后者。然后建立字典变量dict(),目的是为了计数,因为字典变量本身由键名与键值组成,计数完成后将字典转化为列表变量用到了sorted函数,对于这个函数也有两种一种为sort,一种为sorted,区别在于前者是对原对象直接排序,后者为重新生成一个排序好的对象,所以后者更为常用,之后基于键值进行排序用到了lambda函数,最后终止函数,返回列表变量。后面为主函数,也就是代码开始运行的起点,首先需要打开准备好的txt文件,encoding='utf-8'是常见的编码遇到的问题也就是txt文件可能本身有不识别的gbk格式,之后运行前面定义的函数get_chart即可。

下面补充一些关于列表、字典、元组的变量知识:

字典变量:

字典(dict) 是 Python 中一种键值对(key–value)形式的数据结构,用于表示“一一对应关系”。
基本形式:
d = {key1: value1, key2: value2}
常见用法:

定义字典

访问字典

修改字典

遍历字典

info = {

"name": "Tom",

"age": 20,

"score": 95

}

print(info["name"]) 

info["age"] = 21 # 修改

info["gender"] = "male" # 新增

遍历键:

for k in info:

print(k)

遍历值:

for v in info.values():

print(v)

列表变量:

列表是 Python 中最常用的序列类型,用于存储一组有顺序的数据。
基本形式:
lst = [元素1, 元素2, 元素3]
常见用法:

定义列表

访问列表

修改列表

切片(下个例子会用到)

遍历列表

a = [1, 2, 3]

b = ["a", "b", "c"]

c = [1, "hello", 3.14]

lst = [10, 20, 30, 40]

lst[0] 

lst[-1] # 40(倒数第一个)

lst[1] = 99

添加:

lst.append(5) # 末尾添加

lst.insert(1, 99) # 指定位置插入

删除:

lst.remove(99) # 按值删除

lst.pop() # 删除末尾

lst.pop(0) # 删除指定索引

lst = [0, 1, 2, 3, 4]

lst[1:4] # [1, 2, 3]

lst[:3] # [0, 1, 2]

lst[::2] # [0, 2, 4]

遍历元素:

for x in lst:

print(x)

遍历索引与值:

for i, x in enumerate(lst):

print(i, x)

元组变量:

元组是 Python 中的一种有序序列类型,形式与列表非常相似,但不可修改
基本形式:
t = (元素1, 元素2, 元素3)
或者:
t = 1, 2, 3
常见用法

定义

访问-与列表一致

常量:无法修改

作为字典的键

函数返回值

t = (1, 2, 3)

t = (10, 20, 30) 

t[0] 

t[-1] # 30

t[1:3] # (20, 30)

DAYS = ("Mon", "Tue", "Wed", "Thu", "Fri")

pos = {}

pos[(1, 2)] = "A点"

def calc(a, b):

return a + b, a - b

x, y = calc(5, 3)

三者的区别与联系:

对比维度

列表(list)

字典(dict)

元组(tuple)

基本结构

有序序列

键值映射

有序序列

数据组织方式

索引→ 值

键→ 值

索引→ 值

是否有序

✔(有序)

✘(逻辑无序)

✔(有序)

是否可变

✔ 可修改

✔ 可修改

✘ 不可修改

是否支持索引访问

✔

✘

✔

是否支持键访问

✘

✔

✘

元素 / 键是否可重复

✔ 元素可重复

✘ 键不可重复

✔ 元素可重复

是否可作为 dict 的键

✘

—

✔

存储内容类型限制

无限制

键需不可变,值无限制

无限制

常用修改操作

append / pop / insert

添加 / 删除键值对

不支持

查询效率

一般(线性)

高(哈希)

一般(线性)

典型语义

动态数据集合

属性、状态、映射关系

常量、结构数据

常见使用场景

数据列表、队列

配置、状态、映射

坐标、返回值、常量

与字符串相似性

否

否

✔(同为不可变)

最新文章

随机文章