从文件中读取单词,维护顺序

时间:2011-05-07 07:08:55

标签: python

这是python脚本中使用的Unicode字词数组。

texts =[u"abc", u"pqr", u"mnp"]

脚本正如预期的那样使用上面的3个单词示例。问题是文本文件中有数千个单词。 我如何阅读文本文件?

更新 我有2个问题。文本文件中的单词序列不会保留在输出中。 该文本文件具有unicode字符,因此在我的原始示例中为“u”。

# cat testfile.txt
Testing this file with Python

# cat test.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

f     = open('testfile.txt', 'r')
texts  = set(f.read().split())
print (texts)

# python test.py
set(['this', 'Python', 'Testing', 'with', 'file'])

2 个答案:

答案 0 :(得分:2)

这是因为如何设置工作。它们不维护存储在集合中的项目的顺序。

来自documentation

  

set对象是不同的可哈希对象的无序集合

答案 1 :(得分:2)

我发现您的文件读取代码没有问题。鉴于单词出现在由空格分隔的文件中,并且文件不是太大而无法用单个read吞换,它应该可以正常工作。真正的问题是如果你把它们推到set中,那么单词的顺序。

如果您需要与文件中显示的顺序相同的单词,为什么使用set?只需将它们保存在列表中即可。

如果您需要set来删除重复项和/或其他用途,那么您有以下选择: