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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取一系列列表的笛卡爾積?

獲取一系列列表的笛卡爾積?

狐的傳說 2019-05-24 15:56:30
如何從一組列表中獲取笛卡爾積(每種可能的值組合)?輸入:somelists = [    [1, 2, 3],    ['a', 'b'],    [4, 5]]期望的輸出:[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5) ...]
查看完整描述

4 回答

?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個贊

import itertools

>>> for i in itertools.product([1,2,3],['a','b'],[4,5]):

...         print i

...

(1, 'a', 4)

(1, 'a', 5)

(1, 'b', 4)

(1, 'b', 5)

(2, 'a', 4)

(2, 'a', 5)

(2, 'b', 4)

(2, 'b', 5)

(3, 'a', 4)

(3, 'a', 5)

(3, 'b', 4)

(3, 'b', 5)

>>>


查看完整回答
反對 回復(fù) 2019-05-24
?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個贊

對于Python 2.5及更早版本:


>>> [(a, b, c) for a in [1,2,3] for b in ['a','b'] for c in [4,5]]

[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), 

 (2, 'a', 5), (2, 'b', 4), (2, 'b', 5), (3, 'a', 4), (3, 'a', 5), 

 (3, 'b', 4), (3, 'b', 5)]

這是一個遞歸版本product()(只是一個插圖):


def product(*args):

    if not args:

        return iter(((),)) # yield tuple()

    return (items + (item,) 

            for items in product(*args[:-1]) for item in args[-1])

例:


>>> list(product([1,2,3], ['a','b'], [4,5])) 

[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), 

 (2, 'a', 5), (2, 'b', 4), (2, 'b', 5), (3, 'a', 4), (3, 'a', 5), 

 (3, 'b', 4), (3, 'b', 5)]

>>> list(product([1,2,3]))

[(1,), (2,), (3,)]

>>> list(product([]))

[]

>>> list(product())

[()]


查看完整回答
反對 回復(fù) 2019-05-24
  • 4 回答
  • 0 關(guān)注
  • 718 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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