Python将单词附加到文件列表中

时间:2016-04-17 07:45:06

标签: python list python-2.7

我正在编写一个程序,用于将文件中的文本读入列表,使用split函数将其拆分为单词列表。对于每个单词,我需要检查它是否已经在列表中,如果不是,我需要使用append函数将其添加到列表中。

所需的输出是:

['Arise', 'But', 'It', 'Juliet', 'Who', 'already', 'and', 'breaks', 'east', 'envious', 'fair', 'grief', 'is', 'kill', 'light', 'moon', 'pale', 'sick', 'soft', 'sun', 'the', 'through', 'what', 'window', 'with', 'yonder']

我的输出是:

[['But', 'soft', 'what', 'light', 'through', 'yonder', 'window', 'breaks', 'It', 'is', 'the', 'east', 'and', 'Juliet', 'is', 'the', 'sun', 'Arise', 'fair', 'sun', 'and', 'kill', 'the', 'envious', 'moon', 'Who', 'is', 'already', 'sick', 'and', 'pale', 'with', 'grief']]

我一直试图对它进行排序,并在开头和结尾删除双方括号“[[&]]”,但我无法这样做。并且由于某种原因,sort()函数似乎不起作用。

请让我知道我在哪里犯了错误。

word_list = []
word_list = [open('romeo.txt').read().split()]
for item in word_list:
    if item in word_list:
        continue
    else:
        word_list.append(item)
word_list.sort()
print word_list

5 个答案:

答案 0 :(得分:0)

使用两个单独的变量。此外,str.split()会返回一个列表,因此无需在其周围放置[]

word_list = []
word_list2 = open('romeo.txt').read().split()
for item in word_list2:
    if item in word_list:
        continue
    else:
        word_list.append(item)
word_list.sort()
print word_list

目前您正在查看if item in word_list:,这始终是真的,因为item来自word_list。让item从另一个列表中迭代。

答案 1 :(得分:0)

删除括号

word_list = open('romeo.txt').read().split()

答案 2 :(得分:0)

Split返回一个列表,因此无需在open...split周围放置方括号。要删除重复项,请使用集合:

word_list = sorted(set(open('romeo.txt').read().split()))
print word_list

答案 3 :(得分:0)

如果订单无关紧要,那就是一行

uniq_words = set(open('romeo.txt').read().split())

如果订单很重要,那么

uniq_words = []
for word in open('romeo.txt').read().split():
    if word not in uniq_words:
       uniq_words.append(word) 

如果要排序,请采用第一种方法并使用sorted()

答案 4 :(得分:0)

语句open('remeo.txt).read().split()已经返回一个列表,因此从[open('remeo.txt).read().split() ]

中删除[]

如果我说

word = "Hello\nPeter"
s_word = [word.split()] # print [['Hello', wPeter']]
But
s_word = word.split() # print ['Hello', wPeter']