1

例:

a = [1,2,3,2,4,2,5]
for key in a:
    if key == 2:
        key = 10
print key

結果:[1,10,3,10,4,10,5]

どの要素を置き換えるかをPythonに手動で「尋ねる」必要があります。

4

2 に答える 2

7
>>> a = [1,2,3,2,4,2,5]
>>> a[:] = [10 if x==2 else x for x in a]
>>> a
[1, 10, 3, 10, 4, 10, 5]

複数のアイテムを置き換えたい場合は、dict の使用を検討してください。

>>> dic = {2 : 10}
>>> a[:] = [dic.get(x,x) for x in a]
>>> a
[1, 10, 3, 10, 4, 10, 5]
于 2013-06-10T04:48:27.413 に答える
4

あなたが探しているenumerate()

for indx, ele in enumerate(a):
    if ele == 2:
        a[indx] = 10
print a

版画:

[1, 10, 3, 10, 4, 10, 5]

変更したい値が入力の場合は、次のようにします。

change = map(int, raw_input("What number do you want to change in the list? And what number should it be? Separate both numbers with a space ").split())
for indx, _ in enumerate(a):
    if change[0] == 2:
        a[indx] = change[1]

または、リスト内包表記として (このソリューションが気に入ったら、Ashwini に賛成票を投じてください:)):

change = map(int, raw_input("What number do you want to change in the list? And what number should it be? Separate both numbers with a space ").split())
[change[1] if x == change[0] else x for x in a]
于 2013-06-10T04:48:12.553 に答える