2017-04-13 88 views
-1

我有這個樣子打印出的元素在一個字符串

<type 'str'> 
['zeven', 'nul', 'zeven', 'een', 'pieter', 'marie'] 

價值觀,我想什麼了所有的元素現在要做的是循環。但是,如果我這樣做:

x = ['zeven', 'nul', 'zeven', 'een', 'pieter', 'marie'] 

for word in x: 
print(x) 

我得到:

[ 
' 
z 
e 

任何想法我怎麼能剛剛得到的值(如採文,NUL ...等...)

+0

'at ast.literal _eval(x)'... –

+0

由於某種原因,你有一個字符串列表的repr。你可以'ast.literal_eval',但老實說,這看起來像需要在上游進行修正。 – timgeb

+0

當我運行你的代碼時,輸​​出不是我得到的。你是否100%確定這就是你正在運行的代碼?如果你認爲「我說我正在做這件事,而不是做這件事」,請分享一張正確顯示你在做什麼的[mcve]。 – Kevin

回答

2

你幾乎在那裏,你不應該打印x,但你應該打印單詞列表中的每個單詞。

x = ['zeven', 'nul', 'zeven', 'een', 'pieter', 'marie'] 

for word in x: 
    print(word) 

這會給你以下的輸出:

zeven 
nul 
zeven 
een 
pieter 
marie 
0

看起來你有這樣的事情:

x = "['zeven', 'nul', 'zeven', 'een', 'pieter', 'marie']" 

所以,你需要使用eval()

for word in eval(x): 
    print word 
+1

我不認爲這是好的建議,因爲OP的問題可能通過完全沒有這個字符串得到更好的解決。 – timgeb

+0

我不確定他可能從其他地方得到那個字符串/列表,所以我只是用它作爲裝飾。 – zipa

+2

'ast.literal_eval'更好,防止惡意用戶通過放入類似'__import __('os')。system('delete_hard_drive.exe')「的字符串來破壞你的系統。」 – Kevin