gpt4 book ai didi

python - 我想要这个列表理解的变体

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:14 25 4
gpt4 key购买 nike

我有 10 笔涉及属性(property)份额和规模的交易。我想要每一个的总和。有没有办法在一个循环而不是 2 个循环中完成它?

我现在是如何实现的:

total_shares = sum((t.shares for t in transactions))
total_size = sum((t.size for t in transactions))

最佳答案

没有。 sum函数一次只能找到一个可迭代对象的总和。因此,您要么需要像这样更改代码

total_shares, total_size = 0, 0

for t in transactions:
total_shares, total_size = total_shares + t.shares, total_size + t.size

或者对您已经在问题中显示的代码感到满意。这是完美的,没有任何错误。

如果你真的喜欢把你的代码复杂化,你可以把它改成这样

t_shares, t_size = map(sum, zip(*((t.shares, t.size) for t in transactions))))

这个 get 首先用 shares 生成元组和 sizes然后 zip会将元组转换为两个元组 sharessizes最后 sum将应用于将在 t_shares 上解包的每个元组和 t_size .

注意: map , sumzip实际上,变体在内部运行的循环比您在问题中显示的明确的两个循环要多。

关于python - 我想要这个列表理解的变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27872693/

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