不使用遞迴且不引入標準庫,單純用兩個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 ...