2 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用這樣的列表理解:
解釋?zhuān)?/strong>
第一個(gè)
for
定義了組合的長(zhǎng)度。values
使用從 2 到 的長(zhǎng)度的每個(gè)長(zhǎng)度。第二個(gè)
for
創(chuàng)建實(shí)際組合使用
if
生成器方法對(duì)項(xiàng)目數(shù)進(jìn)行求和
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貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
以下應(yīng)該有效:
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')]
添加回答
舉報(bào)