如何基於python生成list的所有的子集

2022-09-26 05:57:08 字數 939 閱讀 8047

不使用遞迴且不引入標準庫,單純用兩個for迴圈即可得出乙個list的所有子集

l = [1, 2,程式設計客棧 3, 4]

list =

for i in range(len(l)): # 定長

for j in range(len(list)): # 變長

sub_list = list[j] + [l[i]]

if sub_list not in l:

list.append(sub_list)

print('list =', list)

主要思想:

變長的 list 中的所有元素將會被不斷地重複遍歷,直到遍歷完定長的 l

當然,不進行條件判斷也行:

l = [1, 2, 3, 1]

list =

for i in range(len(l)): # 定長

for j in range(len(list)): # 變長

list.append(list[j] + [l[i]])

yqebfmprint('list =', list)

最後,如果考慮到程式的效率問題,那麼建議引入 python 標準庫中的 itertools,然程式設計客棧後呼叫 combinations 這個函式

這樣可以更加高效地得到乙個 list 的所有的子集

**如下:

from itertools import combinations

l = [1, 2, 3, 1]

result_list = sum([list(map(list, combinations(l, i))) for i in range(len程式設計客棧(l) + 1)], )

print('result_list =', result_list)

本文標題: 如何基於python生成list的所有的子集

本文位址:

Python如何生成xml檔案

用python內建的xml.dom可以對xml檔案進行解析處理。什麼是xml?xml 指可擴充套件標記語言 extensible markup language xml 是一種標記語言,很類似 html xml 的設計宗旨是傳www.cppcns.com輸資料,而非顯示資料 xml 被設計為具有自我...

如何基於windows實現python定時爬蟲

windows系統下使用任務計畫程式,linux下可以使用crontab命令新增自啟動計畫。這裡寫windows 10zljahrowr windows server 2016系統的設定方法。首先編寫乙個.bat指令碼。新建乙個txt,將下面三行 複製進去,main.py改成自己程式名字。保程式設計...

python 基於XML生成靜態網頁的簡單實現

實現 from xml.sax.handler import contenthandler from xml.sax import parse import os class pagemaker contenthandler passthrough false 判斷是否為新檔案 directory ...