【发布时间】:2022-07-06 02:56:33
【问题描述】:
我编写了一些代码来读取一个长文本文件。 txt 文件中有 10000 个英文单词。然后我想使用 split() 来获取所有单词来训练它们,代码是这样的:
with open('/train.txt', 'r') as fin
text=fin.read()
len(text)#result is 10000
len(text.split() #result is 2800
使用 split() 时只能得到 2800 字的文本,但我认为应该是整个文本,并且 len() 的两个结果应该是相同的 10000。 为什么?由于我的电脑有限?还是我的文字有问题?
【问题讨论】:
-
len为您提供文件中 字符 的数量,因为read将整个内容作为单个字符串返回。 -
为什么你认为长度应该一样?
len(text)统计字符,len(text.split())统计单词。 -
您应该查看
text和test.split()的结果,而不仅仅是它们的长度。 -
要清楚,您的文件只有 2800 个(显然很短)字,而不是 10,000 个。正如其他人所指出的,
len(text)不知道单词边界(这是一个令人惊讶的难以处理的概念,而且涉及的变量太多,str无法报告它)。 -
不过,这些数字看起来确实很奇怪。这个结果意味着平均单词长度小于 3 个字符。
标签: python