第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python - 如何從嵌套列表中獲取所有可能的組合

Python - 如何從嵌套列表中獲取所有可能的組合

喵喔喔 2023-09-12 16:30:38
我有一個(gè)像這樣的嵌套列表:values = [['DNO', 0.2], ['Equinor', 0.4], ['Petoro', 0.2], ['Total', 0.2]]如何獲得總和(每個(gè)子列表的第二個(gè)元素)大于 0.5 的所有可能的元素組合?這就是我正在使用的:def getCombinations(values, min_len):    combo = "\n"    numbers = []    doc = {}    for val in values:        doc[val[0]] = val[1]        numbers.append(val[1])    result = [seq for i in range(len(numbers), 0, -1) for seq in itertools.combinations(numbers, i) if sum(seq) >= 0.5]    temp = doc.copy()    for r in result:        doc = temp.copy()        if len(r) >= min_len:            for rr in r:                combo = combo + get_key(doc, rr) + " "                doc.pop(get_key(doc, rr))            combo = combo + "\n"    return combo當(dāng)上面列表中有多個(gè)值(例如 0.2)時(shí),我的算法會(huì)出現(xiàn)一些問(wèn)題。目前它返回的是min_length=3:Total Equinor Petoro DNOTotal Equinor Petoro Total Equinor Petoro Total Petoro DNO Equinor Total Petoro 
查看完整描述

2 回答

?
月關(guān)寶盒

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

]



查看完整回答
反對(duì) 回復(fù) 2023-09-12
?
jeck貓

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')]



查看完整回答
反對(duì) 回復(fù) 2023-09-12
  • 2 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)