![](/img/trans.png)
[英]How to use extract a list of keys with specific pattern from dict in python?
[英]extract list pattern from list of list in python
我有一個表格清單-
a_list = [[1, [2, 3, 4]], [2, [3, 4]], [3, [4]]]
我想將其轉換為表格-
b_list = [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
使用列表理解,我嘗試了以下代碼
for lst in tup:
for lst1 in tup[1]:
tup2 = [lst[0],lst1]
並得到(這是錯誤的)-
tup2 = [3, [3, 4]]
請幫助,在此先謝謝
列表理解很簡單:
a_list = [[1, [2, 3, 4]], [2, [3, 4]], [3, [4]]]
b_list = [[x,y] for [x,b] in a_list for y in b]
print(b_list)
結果:
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
使用[x,b]
將項目解壓縮為x
作為數字, b
作為列表。 循環遍歷b
元素並建立扁平樣式的對。
無論那里有多少個int,您都可以嘗試這樣的事情:
for sub_list in b:
for items in sub_list:
if isinstance(items, list):
track = sub_list.index(items)
first = sub_list[:track]
second = sub_list[track:][0]
import itertools
print([list(k) for k in itertools.product(first, second)])
測試用例:
b = [[1, [2, 3, 4]], [2, [3, 4]], [3, [4]]]
輸出:
[[1, 2], [1, 3], [1, 4]]
[[2, 3], [2, 4]]
[[3, 4]]
測試案例2:
b=[[1,2,[2, 3, 4]], [2,3,5,6 ,[3, 4]], [3, [4]]]
輸出:
[[1, 2], [1, 3], [1, 4], [2, 2], [2, 3], [2, 4]]
[[2, 3], [2, 4], [3, 3], [3, 4], [5, 3], [5, 4], [6, 3], [6, 4]]
[[3, 4]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.