2012-05-21 186 views
0

我有一個列表在Python for循環中列出元素?

a = ['1','2','3'] 

我的代碼:

result=[] 
for item in a: 
    if item == '1': # 1 
     result.append(item) 
    else: 
     result.append('haha') 

但它不工作。我能做什麼?我得到:

result = ['haha', 'haha', 'haha'] 

我想:

result = ['1', 'haha', 'haha'] 
+0

__append方法 - 一個項目添加到list__的端http://docs.python.org/tutorial/datastructures .html –

+2

它不工作,因爲您的縮進不正確。請參考教程,或者如果你是,可能是一個更好的。 – Marcin

+0

我懷疑這不僅僅是錯誤的縮進。你能發佈一小段代碼來證明問題嗎? –

回答

0

縮進是錯誤的。它應該是 -

for item in a: 
    if item == '1': 
     result.append(item) 
    else: 
     result.append('haha') 

要使'if'語句成爲'for'的一部分,您應該如上所述縮進它。

+1

這就是OP的問題。小心糾正你的答案? – Tadeck

+0

謝謝,解決問題,馬虎! – ANSIC

+0

@Tadeck你認爲你看到的是OP的原始文章嗎?他在我的帖子後編輯(更正)了它。爲了確認,請參閱上面的評論。 – theharshest

3

您的代碼是正確的,結果如預期(請參閱:http://ideone.com/ZZpPW)。

的問題可能是以下之一:

  1. 你的代碼是不同的是,一個您已發佈。
  2. a不是['1', '2', '3'],但例如。 [1, 2, 3]1整數不等於'1'字符串)。
+0

謝謝,解決問題,馬虎! ideone.com收集 – ANSIC

+1

請不要忘記接受您認爲有用的答案。點擊答案評分框 –

1

答案可以是一個行列表表達式:

result = [ x if x == "1" else "haha" for x in a ]

+0

下方的灰色箭頭表示接受他們,@Charles Beattie已經提出了這個問題。 – fanlix