我可以一次在Python中更改列表中的多個項目嗎?在Python中一次更改列表中的多個項目
問題1: 例如,我的名單是
lst=[0,0,0,0,0]
我想第三和第五項成爲99.I知道我可以通過
lst[2] = 99
lst[4] = 99
但是做到這一點,有什麼更簡單的方法做到這一點?
問題2:在這種情況下,我的目標值是[99,98],我的指數是[2,4],所以我的結果是[0,0,99,0,98]。有沒有簡單的方法來做到這一點?謝謝。
我可以一次在Python中更改列表中的多個項目嗎?在Python中一次更改列表中的多個項目
問題1: 例如,我的名單是
lst=[0,0,0,0,0]
我想第三和第五項成爲99.I知道我可以通過
lst[2] = 99
lst[4] = 99
但是做到這一點,有什麼更簡單的方法做到這一點?
問題2:在這種情況下,我的目標值是[99,98],我的指數是[2,4],所以我的結果是[0,0,99,0,98]。有沒有簡單的方法來做到這一點?謝謝。
你可以做這樣的,
>>> lst=[0,0,0,0,0]
>>> target = [99,98]
>>> pos = [2,4]
>>> for x,y in zip(pos,target):
lst[x] = y
>>> lst
[0, 0, 99, 0, 98]
您可以使用slice assignment只要設定你想分配指標到可以用切片引用(即通過啓動,停止,增量) 。例如:
lst=[0,0,0,0,0]
lst[2::2] = [99, 98]
print s
# [0, 0, 99, 0, 98]
謝謝。如果我的目標值只有一個,我需要生成一個像target_value = [99] * len(index)這樣的列表。或者有一個簡單的方法來做到這一點? – user17670 2015-04-03 02:32:22
是的,我想我會那樣做。只是爲了避免重複'for'循環,以防您有多個'target'值的條件 – 2015-04-03 03:48:04