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

答えは、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 に答える