2016-03-03 60 views
0

我很難試圖對一個python列表進行編碼,我已經用一個文本文件爲了計算它裏面的特定單詞而使用了re模塊。如何編碼一個python列表

這是代碼:輸出

# encoding text file 
with codecs.open('projectsinline.txt', 'r', encoding="utf-8") as f: 
    for line in f: 
     # Using re module to extract specific words 
     unicode_pattern = re.compile(r'\b\w{4,20}\b', re.UNICODE) 
     result = unicode_pattern.findall(line) 
    word_counts = Counter(result) # It creates a dictionary key and wordCount 
    Allwords = [] 
    for clave in word_counts: 
     if word_counts[clave] >= 10: # We look for the most repeated words 
      word = clave 
      Allwords.append(word) 
    print Allwords 

部分看起來是這樣的:

[...u'recursos', u'Partidos', u'Constituci\xf3n', u'veh\xedculos', u'investigaci\xf3n', u'Pol\xedticos'] 

如果我print變量word輸出看起來應該是。但是,當我使用append時,所有的單詞再次中斷,如前例。

我用這個例子:

[x.encode("utf-8") for x in Allwords] 

輸出看起來完全像以前一樣。

我也用這個例子:

Allwords.append(str(word.encode("utf-8"))) 

的輸出變化,但話不看,因爲他們應該是:

[...'recursos', 'Partidos', 'Constituci\xc3\xb3n', 'veh\xc3\xadculos', 'investigaci\xc3\xb3n', 'Pol\xc3\xadticos'] 

有些答案已經給這個例子:

print('[' + ', '.join(Allwords) + ']') 

輸出如下:

[...recursos, Partidos, Constitución, vehículos, investigación, Políticos] 

說實話,我不想打印清單,只是對其進行編碼,以便識別所有項目(單詞)。

我正在尋找這樣的事情:

[...'recursos', 'Partidos', 'Constitución', 'vehículos', 'investigación', 'Políticos'] 

任何解決問題的建議表示讚賞

感謝,

+2

單詞不破;他們只是以原始格式顯示。 'list'使用'__repr __()'來獲取其元素的字符串值。 – zondo

+0

有沒有解決方案來顯示列表中的重音單詞? – estebanpdl

+0

的排序。你可以做'print(「[」+「,」.join(Allwords)+「]」)' – zondo

回答

0

你可能什麼嘗試

打印(」 ['+','.join(Allwords)+']')

+0

謝謝,@cxad。使用這個例子,我得到了'[... recursos,Partidos,Constitución,vehículos,investigación,PolÃticos]'另一方面,我不想打印listm只是編碼它,以便所有的項目都被識別。 – estebanpdl

0

您的Unicode條形碼g列表是正確的。打印列表時,列表中的項目顯示爲repr()功能。當您自己打印項目時,這些項目顯示爲str()功能。它只是一個顯示選項,類似於以十進制或十六進制打印整數。

因此,如果您想正確看到它們,請打印出單詞,但要進行比較,內容是正確的。

值得注意的是Python 3中改變的repr()行爲,現在將顯示非ASCII字符,而不轉義碼如果終端直接支持它們與ascii()功能再現的Python 2 repr()行爲。

+0

謝謝@MarkTolonen!有時很難解釋什麼是主要問題。我在學習,所以很難弄清楚所有的概念。當我想將一個列表中的每個項目與另一個列表中的項目進行比較時,出現代碼問題。所以,如果我比較「社交」項目,一切都會好起來的,但是當我比較'Constitución'時,代碼無法識別該項目,因此它跳過該項目。 – estebanpdl

+0

問題出在文本文件中。我將格式從UTF-8更改爲ANSI。現在不僅顯示項目確定,但它可以識別每個項目。 – estebanpdl