在Python中一次更改列表中的多个项目

时间:2015-04-03 02:19:05

标签: python list

我可以在Python中一次更改列表中的多个项目吗?

问题1: 例如,我的列表是

lst=[0,0,0,0,0]

我希望第三和第五项成为99.我知道我可以通过

来实现
lst[2] = 99
lst[4] = 99

但是,有没有更简单的方法呢?

问题2:在这种情况下,我的目标值是[99,98],我的指数是[2,4],所以我的结果是[0,0,99,0,98]。有没有简单的方法来做到这一点?感谢。

3 个答案:

答案 0 :(得分:5)

你可以这样做,

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

答案 1 :(得分:1)

只要您尝试分配的索引集可以由切片引用(即通过启动,停止,增量),就可以使用slice assignment。例如:

lst=[0,0,0,0,0]
lst[2::2] = [99, 98]
print s
# [0, 0, 99, 0, 98]

答案 2 :(得分:0)

使用 numpy 还可以更好地控制此类操作:

import numpy as np
lst = np.asarray([0,0,0,0,0])
lst[[2,4]]=[99, 100]

>>> lst
array([  0,   0,  99,   0, 100])