我可以一次在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