2016-11-04 29 views
0

我一直致力於從.txt文件讀取4個句子,並將所有單詞添加到新的空列表中。從文本文件中轉換4個句子,並將所有單詞添加到新列表中,而不重複單詞

我的代碼如下:

​​

,我得到了以下結果:

[ '但是',通過 '突破', '輕', '軟',」 '','what','window', 'yonder']] [''但'','休息','光','軟','通過','什麼','window','yonder' ],['It','Juliet','and','east','is','is', 'sun','the','the']] [['But','breaks' ,'light','soft','through', 'what','window','yonder'],['It','朱麗葉','和','東','是', '是','太陽','','''',''''''和','羨慕','公平',' '殺', '月亮', '太陽', '的']] [[ '但是', '遊', '輕', '軟', '到', '什麼', '窗口',' yonder'],['It','Juliet','and', 'east','is','is','sun','the','the'],['Arise',' '','envious', 'fair','kill','moon','sun','the'],['who','already','and','sad','is',' '蒼白', '生病', '與']

我能做什麼,得到如下:

['阿里斯e','但','它','朱麗葉','誰','已經','和','休息', '東','羨慕','公平','悲傷','是' '殺', '光', '月亮', '淡', '生病', '軟', '太陽', '中', '通過', '什麼', '窗口', ' 與」,‘那邊’]

的句子: 但柔和什麼光那邊窗子裏 那是東方朱麗葉就是太陽 起來美麗的太陽,殺死羨慕月亮 誰是已經生病了,淡悲傷

+0

你能顯示那4個句子的內容嗎? – RomanPerekhrest

+0

你能用文字解釋輸出的問題嗎?這可能會幫助您查看算法出了什麼問題。 – intrepidhero

+0

看看list.append和list.extend之間的區別。此外,如果你正在尋找獨特的東西,那麼你想要的設置對象。 – intrepidhero

回答

0

要拆分各行成正確使用line.split()單詞的列表,但你是不是通過命名剛剛創建words新的列表進行迭代。你是不是比較列表words作爲對象的lst的內容,然後追加words作爲一個對象來lst。這會導致lst成爲列表的列表,如您在收到的結果中所顯示的那樣。

爲了實現你要找的單詞的數組,你必須通過words到iteratw和單獨只要添加每個字,因爲它不是在lst

for word in words: 
    if word not in lst: 
     lst.append(word) 

編輯:已找到another question/answer關於同樣的問題 - 可能是相同的班級分配。

0

最簡單的方法是使用一組,並追加每個單詞。

file_name = raw_input("Enter file name: ") 
with open(file_name, 'r') as fh: 
    all_words = set() 
    for line in fh: 
     line = line.rstrip() 
     words = line.split() 
     for word in words:  
      all_words.add(word) 
print(all_words) 
1

你想用一組將唯一列表元素:

my_string = "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"  
lst = set(my_string.split(' ')) 

這會給你想要的東西。您可以在字符串中使用set,列表等sets in python 3.5

0

A set可用於刪除重複項,並且split方法將拆分任何類型的空白(包括行尾)。所以這個任務可以簡化爲一個非常簡單的單行程:

lst = sorted(set(open(fname).read().split())) 
相關問題