将两个单独的列表附加到列表列表

Append two individual lists to list of lists

假设我有:

a=[1,2,3]
b=[4,5,6]

现在我想从 a 和 b 创建一个列表列表,我会这样做:

c=[a,b]=[[1,2,3],[4,5,6]]

因为 a.append(b) 会导致:[1,2,3,b]=[1,2,3,[4,5,6]]

现在假设存在一个我想附加到 c:

的新列表
d=[7,8,9]

我现在必须做 c.append(d) 才能得到 [[1,2,3],[4,5,6],[7,8,9]]

因为

e=[c,d]=[[[1,2,3],[4,5,6]],[7,8,9]]

如何在不知道列表结构的情况下从单个列表中获取列表列表?

试试这个:

a = [1,2,3]
b = [4,5,6]
c = []

c.append(a)
c.append(b)

这应该可行,只需要简单的 2 行。

有点迂回但看起来不错,使用 numpy

a = np.array([[1,2,3]])
b = np.array([[4,5,6]])
c = np.append(a,b,axis=0)
print(c.tolist())

给你

[[1,2,3],[4,5,6]]

以相同的方式追加另一个列表保持列表列表的结构,例如

d = np.array([[7,8,9]])
e = np.append(c,d,axis=0)
print(e.tolist())

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

现在这是相当迂回的。如果可能的话,我会把所有东西都放在 numpy 数组中。

编辑:弄清楚如何在没有 numpy 的情况下做到这一点

简单地将每个列表声明为列表列表的开头

a = [[1,2,3]]
b = [[4,5,6]]
a.extend(b)
print(a)

[[1,2,3],[4,5,6]]

此外你还可以这样做

d = [[7,8,9]]
a.extend(d)
print(a)

[[1, 2, 3], [4, 5, 6], [4, 5, 6]]

您描述的两个动作明显不同。第一个是创建外部列表(a.k.a。c),第二个是附加到它。

为了使过程更加统一,您可以从外部列表开始并将所有子列表附加到它。

c = []
a=[1,2,3]
b=[4,5,6]
d=[7,8,9]

c.append(a)
c.append(b)
c.append(d)

c 现在

[[[1,2,3],[4,5,6]],[7,8,9]]