2017-03-14 78 views
1

對於我下面的代碼一切正常,但我想我存儲在列表輸出,我無法弄清楚如何做到這一點。我試圖創建一個空列表並將輸出追加到列表中,但它不起作用。任何幫助將是偉大的!含輸出在列表

sample_photo_rep["photo"]["tags"]["tag"] 
for sample_tags_list in sample_photo_rep["photo"]["tags"]["tag"]: 
    print [sample_tags_list['raw'].decode('utf-8')] 

current output: 
[u'Nature'] 
[u'Mist'] 
[u'Mountain'] 

correct output: [u'nature', u'mist', u'mountain'] 
+0

你是如何創建一個空列表和追加,因爲我做了什麼,我的答案和它的作品 –

+0

這將是更好地標記這個問題上python-2.7,因爲我認爲它是這樣的。 Unicode字符串處理在python 2和python 3之間是非常不同的。 – farsil

回答

1

在每一個循環,你打印包含一個元素,即[u'Nature'][u'Mountain']等列表

如果你刪除封閉的大括號,即[sample_tags_list['raw'].decode('utf-8')]sample_tags_list['raw'].decode('utf-8'),你應該只是得到字符串。

不知道爲什麼你的追加沒有工作,因爲

output = [] 
for sample_tags_list in sample_photo_rep["photo"]["tags"]["tag"]: 
    output.append(sample_tags_list['raw'].decode('utf-8')) 

應該做的伎倆。列表理解可以完成與@abccd答案中相同的內容;都給出相同的輸出。

+0

非常感謝您的幫助! – Avery9115

0

您可以隨時使用列表理解是這樣的:

print [sample_tags_list['raw'].decode('utf-8') for sample_tags_list in sample_photo_rep["photo"]["tags"]["tag"]] 

代替你for loop的。到目前爲止,這仍然是這樣做的最佳方式。你可以看到pydoc這個簡單的使用列表組件的例子。

0

你的代碼中像這樣的頂部聲明一個空列表:

tags = [] 

然後,而不是打印出來在你for loop它添加到列表:

for sample_tags_list in sample_photo_rep["photo"]["tags"]["tag"]: 
    tags.append([sample_tags_list['raw'].decode('utf-8')]) 

然後標記應該是這樣的:

[u'nature', u'mist', u'mountain'] 

進一步閱讀

信息上追加到列表:一般https://www.tutorialspoint.com/python/list_append.htm

信息的列表: https://developers.google.com/edu/python/lists