-1

重複の可能性:
Python で文字列を整数に変換する方法は?

listy = [['1', '2', '3', '4', '5'], "abc"]

for item in listy[0]:
    int(item)

print listy

stringsネストされたリストで、それらすべてをに変更するにはどうすればよいintsですか? 上記の内容は、次の出力を提供します。

[['1', '2', '3', '4', '5'], 'abc']

何故ですか?

前もって感謝します!

4

1 に答える 1

0

listy[0]変換された項目をサブリスト ( )に割り当てる必要があります。

listy[0][:] = [int(x) for x in listy[0]]

説明:

for item in listy[0]:
    int(item)

上記は、サブリスト内の項目を反復処理して整数に変換しますが、式の結果を何にも代入しませんint(item)。したがって、結果は失われます。

[int(x) for x in listy[0]]forリストを反復処理し、各項目を整数に変換して新しいリストを返すリスト内包表記 (ループの省略形のようなもの) です。次に、新しいリストが外側のリストに (その場で、オプションで) 割り当てられます。

これは、特定の質問に対する非常にカスタムなソリューションです。より一般的な解決策には、サブリストを取得するための再帰と、数値変換の候補を検出する何らかの方法が含まれます。

于 2012-10-02T02:51:18.730 に答える