在Python中一行初始化2d数组

在Python中一行初始化2d数组,python,list,Python,List,我想知道,我如何缩短这个时间: test = [1, 2, 3] test[0] = [1, 2, 3] test[1] = [1, 2, 3] test[2] = [1, 2, 3] 我试过这样的方法: test = [1[1, 2, 3], 2 [1, 2, 3], 3[1, 2, 3]] #or test = [1 = [1, 2, 3], 2 = [1, 2, 3], 3 = [1, 2, 3]] #I know this is dumb, but at least I tried..

我想知道,我如何缩短这个时间:

test = [1, 2, 3]
test[0] = [1, 2, 3]
test[1] = [1, 2, 3]
test[2] = [1, 2, 3]
我试过这样的方法:

test = [1[1, 2, 3], 2 [1, 2, 3], 3[1, 2, 3]]
#or
test = [1 = [1, 2, 3], 2 = [1, 2, 3], 3 = [1, 2, 3]] #I know this is dumb, but at least I tried...
但它不起作用:|


这只是我愚蠢的尝试了一些不可行的东西,还是有一个正确的语法,我不知道?

这是一个列表理解:

test = [[1, 2, 3] for i in range(3)]
test = {i: [1, 2, 3] for i in range(3)}

这是一个列表:

test = [[1, 2, 3] for i in range(3)]
test = {i: [1, 2, 3] for i in range(3)}
最简单的方法是

test = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
但是,如果您想创建更多的列表,那么您可能需要这样做

test = [[1, 2, 3] for i in range(100)]
test = []
for i in range(100):
    test.append([1, 2, 3])
test = []
test.append([1, 2, 3])
...
这将创建一个包含100个子列表的列表。列表理解就是创建一个新的列表,可以这样理解

test = [[1, 2, 3] for i in range(100)]
test = []
for i in range(100):
    test.append([1, 2, 3])
test = []
test.append([1, 2, 3])
...
注意:您可以像这样简单地使用它,而不是执行
测试[0]=…

test = [[1, 2, 3] for i in range(100)]
test = []
for i in range(100):
    test.append([1, 2, 3])
test = []
test.append([1, 2, 3])
...

如果你看看语言

因此,可以用列表理解或表达式列表来构造列表。如果我们看到

它只是一个逗号分隔的一个或多个表达式

就你而言

1[1, 2, 3], 2[1, 2, 3] ...
是无效的表达式,因为
1[1,2,3]
在Python中没有任何意义。而且

1 = [1, 2, 3]
表示将
[1,2,3]
赋值给
1
,这也是无效的表达式。这就是你的尝试失败的原因。

最简单的方法是

test = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
但是,如果您想创建更多的列表,那么您可能需要这样做

test = [[1, 2, 3] for i in range(100)]
test = []
for i in range(100):
    test.append([1, 2, 3])
test = []
test.append([1, 2, 3])
...
这将创建一个包含100个子列表的列表。列表理解就是创建一个新的列表,可以这样理解

test = [[1, 2, 3] for i in range(100)]
test = []
for i in range(100):
    test.append([1, 2, 3])
test = []
test.append([1, 2, 3])
...
注意:您可以像这样简单地使用它,而不是执行
测试[0]=…

test = [[1, 2, 3] for i in range(100)]
test = []
for i in range(100):
    test.append([1, 2, 3])
test = []
test.append([1, 2, 3])
...

如果你看看语言

因此,可以用列表理解或表达式列表来构造列表。如果我们看到

它只是一个逗号分隔的一个或多个表达式

就你而言

1[1, 2, 3], 2[1, 2, 3] ...
是无效的表达式,因为
1[1,2,3]
在Python中没有任何意义。而且

1 = [1, 2, 3]

表示将
[1,2,3]
赋值给
1
,这也是无效的表达式。这就是您的尝试失败的原因。

您的代码:
test=[1=[1,2,3],2=[1,2,3],3=[1,2,3]
非常接近。您可以使用字典精确地执行以下操作:

test = {1: [1, 2, 3], 2: [1, 2, 3], 3: [1, 2, 3]}
现在,要调用测试1,只需使用:

test[1]

或者,您可以使用dict理解:

test = [[1, 2, 3] for i in range(3)]
test = {i: [1, 2, 3] for i in range(3)}

您的代码:
test=[1=[1,2,3],2=[1,2,3],3=[1,2,3]]
非常接近。您可以使用字典精确地执行以下操作:

test = {1: [1, 2, 3], 2: [1, 2, 3], 3: [1, 2, 3]}
现在,要调用测试1,只需使用:

test[1]

或者,您可以使用dict理解:

test = [[1, 2, 3] for i in range(3)]
test = {i: [1, 2, 3] for i in range(3)}