求看python 统计中文词频的代码,有一个地方不懂 求大神
发布网友
发布时间:2022-04-24 17:02
我来回答
共1个回答
热心网友
时间:2022-04-18 04:11
首先要说明一个概念:gbk编码里一个中文字符的‘长度’是2。
str = '中国' #gbk编码
要取得'中'这个字符,需要用分片str[0:2],而不是索引str[0]。
以z4为例,下面这些代码的效果是这样的。
x = '同舟共济与时俱进艰苦奋斗'
i+= z4.findall(x) # 返回['同舟共济','与时俱进', '艰苦奋斗']
i+= z4.findall(x[2:]) # 返回['舟共济与', '时俱进艰']
i+= z4.findall(x[4:]) # 返回['共济与时', '俱进艰苦']
i+= z4.findall(x[6:]) # 返回['济与时俱', '进艰苦奋']
目的是取得所有连续4字中文字符串。
追问这里面像
i+= z2.findall(x)
i+= z2.findall(x[2:]) 能同时存在吗?i难道不会被覆盖吗?
还有 我觉得 是i = 。。。而不是i + =。。。。求大神解释
追答
i += 的效果是两个列表相加,语法上是没有问题的。
i = ['同舟共济','与时俱进', '艰苦奋斗']
i += ['舟共济与', '时俱进艰']
结果 i = ['同舟共济','与时俱进', '艰苦奋斗', '舟共济与', '时俱进艰']
不过因为 i 是for循环的索引,把列表赋值给 i 循环就没法继续下去了,得另外用个变量替代 i 才行。