>> import operator >>> >>> OPS = [operator.add, operator.sub, opera-6ren">
gpt4 book ai didi

python - "reducing"的惯用语是一个列表和另一个方法列表

转载 作者:行者123 更新时间:2023-11-30 23:53:22 24 4
gpt4 key购买 nike

我遇到了一种情况,我想通过另一个方法列表“减少”一个整数列表。

>>> import operator
>>>
>>> OPS = [operator.add, operator.sub, operator.add]
>>> nums = [1,2,3,4]
>>>
>>> OPS[2](OPS[1](OPS[0](nums[0],nums[1]),nums[2]),nums[3])
4

for循环:

>>> result = nums[0]
>>> for i in range(1,len(nums)):
... result = OPS[i-1](result,nums[i])
...
>>> print result
4

“队列”:

>>> result = nums.pop(0)
>>> while nums:
... result = OPS.pop(0)(result, nums.pop(0))
...
>>> print result
4

如果我只想对数字列表应用一种方法,例如operator.add,我可以使用reduce。

>>> reduce(operator.add, [1,2,3,4])
10

是否有类似的方法可以组合两个列表,一个是运算符,另一个是操作数?

最佳答案

不。

>>> OPS = [operator.add, operator.sub, operator.add]
>>> nums = [1, 2, 3, 4]
>>> print reduce(lambda x, y: y[0](x, y[1]), zip(OPS, nums[1:]), nums[0])
4

关于python - "reducing"的惯用语是一个列表和另一个方法列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784870/

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