gpt4 book ai didi

python - 这可以写成 python reduce 函数吗?

转载 作者:太空狗 更新时间:2023-10-30 00:24:36 26 4
gpt4 key购买 nike

你能通过使用 map 和/或 reduce 函数使它更像 pythonic 吗?它只是对每对连续数字的乘积求和。

topo = (14,10,6,7,23,6)
result = 0
for i in range(len(topo)-1):
result += topo[i]*topo[i+1]

最佳答案

这是我能想到的最好的方式:

import operator
sum(map(operator.mul, topo[:-1], topo[1:]))

编辑:我刚刚发现有更好的方法来做到这一点:

import operator
import itertools

def pairwise(iterable):
a, b = itertools.tee(iterable)
next(b, None)
return a, b

def sum_products(l):
return sum(itertools.imap(operator.mul, *pairwise(l)))

成对函数归功于 itertools 文档。

这更快并且使用更少的内存。当然,它不够简洁。

关于python - 这可以写成 python reduce 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924828/

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