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')]
添加回答
舉報