我正在编写一个程序,用于将文件中的文本读入列表,使用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
答案 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']