Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-基于索引更改列表中的多个元素_Python_List - Fatal编程技术网

Python-基于索引更改列表中的多个元素

Python-基于索引更改列表中的多个元素,python,list,Python,List,我是python新手。。我的问题是:我有一个列表rt,还有一个带有索引rtInd的列表,它的大小和内容各不相同 对于rtInd中的所有索引,我想更改rt中相应的元素 例如:rt=[10,20,30,40];rtInd=[2,3] 我想要的是: rt[2] = 30 + x rt[3] = 40 + x 有人能帮我吗 提前谢谢 Amy如果您有一个索引列表,并且您有x,您可以循环并更新相应索引处的值: rt=[10,20,30,40] rtInd=[2,3] x=10 对于rtInd中的i: r

我是python新手。。我的问题是:我有一个列表rt,还有一个带有索引rtInd的列表,它的大小和内容各不相同

对于rtInd中的所有索引,我想更改rt中相应的元素

例如:
rt=[10,20,30,40];rtInd=[2,3]

我想要的是:

rt[2] = 30 + x

rt[3] = 40 + x
有人能帮我吗

提前谢谢


Amy

如果您有一个索引列表,并且您有
x
,您可以循环并更新相应索引处的值:

rt=[10,20,30,40]
rtInd=[2,3]
x=10
对于rtInd中的i:
rt[i]+=x
#结果:
#rt=[10,20,40,50]

如果
rt
numpy
数组,您可以使用索引本身的
列表(或
numpy.array
)进行索引(必须清楚,不能是
元组,因为
元组用于多维访问,而不是一组要修改的索引):

这将把工作推到
numpy
内部的单个操作(可能会提高性能)


也就是说,
numpy
是一个相当重的依赖项;如果您还没有依赖于
numpy
,我会坚持中所述的简单循环。

rtInd:rt[I]+=x中的
for I对您有用吗?谢谢,这正是我要找的!
# Setup
rt = numpy.array([10, 20, 30, 40], dtype=np.int64)
rtInd = [2, 3]  # Or numpy.array([2, 3])
x = 123  # Arbitrary value picked

# Actual work
rt[rtInd] += x