gpt4 book ai didi

python - 对 python 列表执行批量算术运算

转载 作者:行者123 更新时间:2023-11-28 19:07:15 25 4
gpt4 key购买 nike

我有一个整数列表,我想对列表切片(子数组)的每个元素或某些索引(例如 range(start, end, jump) )高效地执行加法、乘法、底除法等操作。与列表切片的每个元素相加或相乘的数字是常数(比如'k')。

例如:

    nums = [23, 44, 65, 78, 87, 11, 33, 44, 3]
for i in range(2, 7, 2):
nums[i] //= 2 # here 2 is the constant 'k'
print(nums)
>>> [23, 44, 32, 78, 43, 11, 16, 44, 3]

我必须在不同的切片/范围上多次执行这些操作,并且常量“k”因不同的切片/范围而异。执行此操作的明显方法是运行 for 循环并修改元素的值,但这不够快。您可以使用 numpy 数组高效地执行此操作,因为它支持批量分配/修改,但我正在寻找一种在纯 python 中执行此操作的方法。

最佳答案

避免 for 循环的一种方法如下:

>>> nums = [23, 44, 65, 78, 87, 11, 33, 44, 3]
>>> nums[2:7:2] = [x//2 for x in nums[2:7:2]]
>>> nums
[23, 44, 32, 78, 43, 11, 16, 44, 3]

关于python - 对 python 列表执行批量算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com