0

我有一个清单

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']
4

3 回答 3

3

您的代码是正确的,结果符合预期(请参见此处:http: //ideone.com/ZZpPW)。

问题可能是以下之一:

  1. 您的代码与您发布的代码不同。
  2. a不是['1', '2', '3'],而是例如。[1, 2, 3]1整数不等于'1'字符串)。
于 2012-05-21T08:34:25.443 回答
1

答案可以是一个单行列表表达式:

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

于 2012-05-21T09:00:08.677 回答
0

缩进是错误的。它应该是 -

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

要使 'if' 语句成为 'for' 的一部分,你应该像上面那样缩进它。

于 2012-05-21T08:27:57.920 回答