2012-05-21 46 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