Python實現list列表的有序子集查詢

2021-10-05 20:36:24 字數 1113 閱讀 4924

找出list的全部子集很簡單,但是如果我們要求子集保持順序,就加了很多的限制。

比如[1,2,3,4] ->有效的有序真子集應該是[ [1],[1,2],[1,2,3],[1,2,3,4] ]

實現如下:

def

find_subset

(l):

list =[[

]]#用於儲存子集

#查詢有序子集

for i in

range

(len

(l))

:#遍歷原list元素

for j in

range

(len

(list)):

#遍歷用於list內容

flag =

0 sub_list = list[j]

+[l[i]

]#可能子集

if sub_list not

in list:

iflen

(sub_list)

>1:

for each in

range(0

,len

(sub_list)):

if l[each]

!= sub_list[each]

:#保證前幾位一致

flag =

1if flag ==0:

else

:if l[0]

== sub_list[0]

:

如果還需要去除空集,可以再加一部分**

#刪除list中的空集

for a in list:

if a ==

: list.remove(a)

測試**:

f =[[

'a'],[

'a',

'c'],[

'f',

'a',

'c'],[

'f',

'a'],[

'p']

for ele in f:

subset = find_subset(ele)

Python的列表(list)介紹

列表物件支援的方法 2.count x 返回物件x在列表中出現的次數 3.extend l 將列表l中的表項新增到列表中,返回none 4.index x 返回列表中匹配物件x的第乙個列表項的索引,無匹配元素時產生異常 5.insert i,x 在索引為i的元素前插入物件x,如list.insert...

python 列表list的遍歷

這裡一共介紹,python列表 list 的遍歷方法,包括直接遍歷,下標遍歷,用列舉函式來遍歷 遍歷列表方法1 直接遍歷,這也是最普通的一種 for u in list print u,list.index u print 方法二 遍歷列表方法2 通過下標進行遍歷,range的範圍是從0到len l...

Python 中的 List 列表

任意物件的有序集合 列表可以包含任何種類的物件 列表都是可變的 列表是有序的 2 常用操作 列表長度 l1 1,2,3,4 print len l1 4 列表拼接 l2 l1 5,6 print l2 1,2,3,4,5,6 生成重複列表 print list 5 list list list li...