gpt4 book ai didi

python - 过滤 python 列表理解

转载 作者:太空狗 更新时间:2023-10-30 02:57:38 25 4
gpt4 key购买 nike

我正在通过一些教程练习学习 python 理解。我遇到了一个问题,它要求建立一个推导式,该推导式返回给定集合中所有数字组合的三元组,总和为零——不包括 (0,0,0) 的简单示例。

我想到了这个:

def tupleNonTrivialSumation(s):
'''return a 3-tuple of x,y,z : x+y+z=0 & the list does not contain (0,0,0)'''
return tuple([(x,y,z) for x in s for y in s for z in s if x+y+z==0 if abs(x)+abs(y)+abs(z)!=0])`

有没有更简洁的写法?似乎应该有更好的方法来检查 x、y、z 之和是否为零。

最佳答案

如果顺序很重要,您可以使用 itertools.permutation():

from itertools import permutation
[sub for sub in permutation(s, 3) if sum(sub) == 0 and sub != (0, 0, 0)]

否则使用itertools.combinations()

关于python - 过滤 python 列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36417501/

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