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

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

如何找到特定范圍內(nèi)的所有整數(shù)集?

如何找到特定范圍內(nèi)的所有整數(shù)集?

慕蓋茨4494581 2023-09-05 15:29:47
我有一個(gè)列表列表,我想找到列表中項(xiàng)目的所有排列。我很難解釋這一點(diǎn),所以這里有一個(gè)例子。我有三個(gè)清單:level_list = [    [1, 2, 3],    [1, 2],    [1, 2, 3, 4, 5]]我想最終得到一個(gè)列表列表,所有列表的長(zhǎng)度都是 3,并且包含我原來(lái)的 3 個(gè)列表中的潛在選項(xiàng);像這樣:final_list =[    [1, 1, 1],    [1, 1, 2],    [1, 1, 3],    [1, 1, 4],    [1, 1, 5],    [1, 2, 1],    [1, 2, 2],    [1, 2, 3],    [1, 2, 4],    [1, 2, 5],    [2, 1, 1],    [2, 1, 2],    [2, 1, 3],    [2, 1, 4],    [2, 1, 5],    [2, 2, 1],    [2, 2, 2],    [2, 2, 3],    [2, 2, 4],    [2, 2, 5],    [3, 1, 1],    [3, 1, 2],    [3, 1, 3],    [3, 1, 4],    [3, 1, 5],    [3, 2, 1],    [3, 2, 2],    [3, 2, 3],    [3, 2, 4],    [3, 2, 5]]感覺如果我要手動(dòng)執(zhí)行此操作,我應(yīng)該做我會(huì)做的事情,即:增加最后一個(gè)子列表,將其他兩個(gè)常量的值保持為 1增加中間子列表,將第一個(gè)子列表的值保持為 1 并繼續(xù)改變最終子列表完成第一個(gè)子列表如果我對(duì)列表的 # 進(jìn)行硬編碼,我可以使用嵌套的 for 循環(huán)來(lái)做到這一點(diǎn),但這感覺非常“非 python 風(fēng)格”,而且也不是真正可行,因?yàn)槲易罱K需要它成為一個(gè)可以與任意數(shù)量的子列表一起使用的函數(shù):final_list = []for i1 in level_list[0]:    for i2 in level_list[1]:        for i3 in level_list[2]:            final_list.append([i1, i2, i3])            print(final_list)這幾乎就像我需要一個(gè) for 循環(huán)嵌套的 for 循環(huán)?;蛘咭恍┍任蚁胂蟮母斆鞯慕鉀Q方案。我也愿意接受只接受最小值和最大值的解決方案——這將始終是整數(shù)列表,它們之間的步長(zhǎng)為 1。
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

你可以用itertools.product那個(gè)

計(jì)算輸入可迭代對(duì)象的笛卡爾積。

final_list?=?list(itertools.product(*level_list)))

例子

list(itertools.product(*[[1,?2],?[3,?4]])))?#?[(1,?3),?(1,?4),?(2,?3),?(2,?4)]


查看完整回答
反對(duì) 回復(fù) 2023-09-05
?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊

   level_list = [

            [1, 2, 3],

            [1, 2],

            [1, 2, 3, 4, 5]

        ]


        nb_lists = len(level_list)

        least_significant_position = nb_lists - 1

        indices = defaultdict(int)

        solution_found = False

        solution = list()


        while not solution_found:

            possible_combination = list()

            index_incremented = False


            for i in range(nb_lists, 0, -1):

                current_selection = level_list[i - 1]

                index = indices[i - 1]

                possible_combination.insert(0, current_selection[index])


                max_index_for_this_list = len(current_selection) - 1


                if not index_incremented and index < max_index_for_this_list:

                    indices[i - 1] += 1

                    index_incremented = True


                    if i - 1 != least_significant_position:

                        less_significant_position = i


                        while less_significant_position <= least_significant_position:

                            indices[less_significant_position] = 0

                            less_significant_position += 1


            solution.append(possible_combination)


            if not index_incremented:

                solution_found = True


        print(solution.__str__())


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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