任何人都可以帮助我。这就是我想要做的。
x = [[1,2,3,4,5],[6,7,8,9,10]]
y= [0,1]
desired output = [
[[1,2,3,4,5],[0,1]],
[[6,7,8,9,10],[0,1]]
]
我尝试将其放入for循环
>>> x = [[1,2,3,4,5],[6,7,8,9,10]]
>>> for value in x:
... a = []
... a += ([x,y])
... print(a)
...
[[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]], [0, 1]]
[[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]], [0, 1]]
我也试过这个
>>> for value in x:
... a = []
... a += ([x,y])
... print(a)
...
[[1, 2, 3, 4, 5], [0, 1]]
[[1, 2, 3, 4, 5], [0, 1]]
[[1, 2, 3, 4, 5], [0, 1]]
[[1, 2, 3, 4, 5], [0, 1]]
[[1, 2, 3, 4, 5], [0, 1]]
感谢您的帮助。我需要它来为我的神经网络数据添加标签。
答案 0 :(得分:1)
您可以使用列表推导,并遍历x
中的每个子列表。由于您将y
插入到不同的子列表中,因此您可能希望插入列表的副本,而不是原始列表。
[[i, y[:]] for i in x]
或者,
[[i, y.copy()] for i in x]
[[[1, 2, 3, 4, 5], [0, 1]], [[6, 7, 8, 9, 10], [0, 1]]]
副本是作为安全预防措施完成的。要了解原因,请考虑一个例子,
z = [[i, y] for i in x] # inserting y (reference copy)
y[0] = 12345
print(z)
[[[1, 2, 3, 4, 5], [12345, 1]], [[6, 7, 8, 9, 10], [12345, 1]]] # oops
修改任何其他子列表中的原始y
或y
将反映所有子列表中的更改。您可以通过插入副本来防止这种情况,这就是我在顶部所做的。
答案 1 :(得分:-1)
试试这个:
for i in range(len(x)):
z[i] = [x[i],y];