我有两个形状如下的列表:
listA
[[778, 606],
[2115, 2049],
[3361, 3183],
[4512, 4179]]
listB
[[-128, -4],
[-38, 38],
[-15, 110],
[-105, 185]]
我想从listA和listB中获取第一个元素,以创建将进入另一个列表的列表。
所以我想要类似以下的输出:
new_list
[[[778, 606],[-128, -4]],
[[2115, 2049],[-38, 38]],
[[3361, 3183],[-15, 110]],
[[4512, 4179],[-105, 185]]]
关于如何正确构造列表理解的想法,或者也许有更好的即用型方法?
我想我在如何追加列表的逻辑上苦苦挣扎。
我尝试了以下操作:
x = []
for i,j in [(i,j) for i in listA for j in listB]:
x.append(i)
x.append(j)
导致:
[[778, 606],
[-128, -4],
[778, 606],
[-38, 38],
[778, 606],
[-15, 110],
[778, 606],
[-105, 185]]
这不是我想要的。所以我也尝试过:
y = [(i,j) for i in listA for j in listB]
导致:
[([778, 606], [-128, -4]),
([778, 606], [-38, 38]),
([778, 606], [-15, 110]),
([778, 606], [-105, 185]),
([2115, 2049], [-128, -4]),
([2115, 2049], [-38, 38]),
([2115, 2049], [-15, 110]),
([2115, 2049], [-105, 185]),
([3361, 3183], [-128, -4]),
([3361, 3183], [-38, 38]),
([3361, 3183], [-15, 110]),
([3361, 3183], [-105, 185]),
([4512, 4179], [-128, -4]),
([4512, 4179], [-38, 38]),
([4512, 4179], [-15, 110]),
([4512, 4179], [-105, 185])]
答案 0 :(得分:1)
我会为此使用zip。这是一次很好的循环浏览两个列表并获取它们两个值的好方法。
new_list = [list(c) for c in zip(listA, listB)]
new_list = [*zip(listA, listB)] #if tuples are fine.
输出:
[[[778, 606], [-128, -4]],
[[2115, 2049], [-38, 38]],
[[3361, 3183], [-15, 110]],
[[4512, 4179], [-105, 185]]]