相关疑难解决方法(0)

Python初始化列表列表

可能重复:
Python列表追加行为

我打算初始化长度为n的列表.

x = [[]] * n
Run Code Online (Sandbox Code Playgroud)

但是,这会以某种方式将列表链接在一起.

>>> x = [[]] * 3
>>> x[1].append(0)
>>> x
[[0], [0], [0]]
Run Code Online (Sandbox Code Playgroud)

我希望有类似的东西:

[[], [0], []]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python list

149
推荐指数
1
解决办法
15万
查看次数

Python:创建n个列表列表的最快方法

所以我想知道如何最好地创建一个空白列表列表:

[[],[],[]...]
Run Code Online (Sandbox Code Playgroud)

由于Python如何使用内存中的列表,这不起作用:

[[]]*n
Run Code Online (Sandbox Code Playgroud)

这确实创建[[],[],...]但每个元素都是相同的列表:

d = [[]]*n
d[0].append(1)
#[[1],[1],...]
Run Code Online (Sandbox Code Playgroud)

像列表理解这样的东西:

d = [[] for x in xrange(0,n)]
Run Code Online (Sandbox Code Playgroud)

但是这使用Python VM进行循环.有没有办法使用隐含循环(利用它用C语言编写)?

d = []
map(lambda n: d.append([]),xrange(0,10))
Run Code Online (Sandbox Code Playgroud)

这实际上比较慢.:(

python

89
推荐指数
4
解决办法
16万
查看次数

标签 统计

python ×2

list ×1