在python中从列表列表中提取列表模式

在python中从列表列表中提取列表模式,python,list,nested,Python,List,Nested,我有一张表格的清单- 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] 并且得到(这是错误的)—— 请帮助,提前感谢简单的列表理解: a_list = [[1,

我有一张表格的清单-

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]
并且得到(这是错误的)——


请帮助,提前感谢

简单的列表理解:

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]]
[[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]]
测试用例2:

b=[[1,2,[2, 3, 4]], [2,3,5,6 ,[3, 4]], [3, [4]]]
输出:

[[1, 2], [1, 3], [1, 4]]
[[2, 3], [2, 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]]

今天发生了什么?这是国际列表日吗?也许值得列一个列表问题。@Ev.Kounis哈哈!!!也许…你能帮我吗?让我们也做一个“将数字打印为三角形”标记。这会做大量复杂的、不必要的额外工作,甚至不会生成提问者想要的
b_列表。@user2357112感谢你在否决投票中付出的努力,只要把所有的子列表放在一个列表中,你就会得到那个b_列表。Bdw你为什么跟踪我的问题?