2 回答
TA贡献1772条经验 获得超5个赞
您可以使用这样的列表理解:
解释:
第一个
for
定义了组合的长度。values
使用从 2 到 的长度的每个长度。第二个
for
创建实际组合使用
if
生成器方法对项目数进行求和
from itertools import combinations
combis = [
item
for length in range(2, len(values)+1)
for item in combinations(values, length)
if sum(i[1] for i in item) >= 0.5
]
TA贡献1909条经验 获得超7个赞
以下应该有效:
import itertools
result=[]
for k in range(2,len(values)+1):
temp=[tuple(x[0] for x in i) for i in list(itertools.combinations(values,k))if sum([p[1] for p in i]) >0.5]
result.append(temp)
result=sum(result, [])
print(result)
输出:
[('DNO', 'Equinor'), ('Equinor', 'Petoro'), ('Equinor', 'Total'), ('DNO', 'Equinor', 'Petoro'), ('DNO', 'Equinor', 'Total'), ('DNO', 'Petoro', 'Total'), ('Equinor', 'Petoro', 'Total'), ('DNO', 'Equinor', 'Petoro', 'Total')]
添加回答
举报