【发布时间】:2019-09-17 22:58:49
【问题描述】:
例如我有两个列表是二维列表
a=[[7,9,10,11,12],[4,11,14,16,21]]
b=[[5,9,14,15],[7,12,15,17,19],[8,14,15,17,19],[13,15,17,20,22]]
我希望结果是
0. [[9],[12,7]]
1. [[4], [14]]
从您的评论中复制:
for 循环。
for idx,item_a in enumerate(a):
result = []
for item_b in b:
result.append(list(set(item_a) & set(item_b)))
print(idx,result))
【问题讨论】:
-
你会如何用一个(或两个)for循环来做到这一点?从头开始提出改进代码的建议更容易。哦,使用列表推导式创建两个列表有点棘手(并非不可能,但它涉及额外的转置步骤)。
-
我真的不想使用 for 循环,因为当我开始新行时,它只显示最后一行。但这就是我的 for 循环。 idx,item_a in enumerate(a): result = [] for item_b in b: result.append(list(set(item_a) & set(item_b))) print(idx,result))
-
[[list(set(i)&set(j)) for i in b] for j in a] -
那么
result(循环之后)有什么问题? -
循环的问题是我无法使用显示器。对不起,我是 python 新手
标签: python python-3.x list nested-lists