python list初始化技巧

python

一维列表

python3"># 初始化递增的list,与L = [i for i in range(10)] 效果相同

L = range(10)

# print(L)

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

python3">#初始化每项为0的一维列表

L = [0] * 5

# print(L)

#[0,0,0,0,0]

二维列表

L = [[0] * 5 for i in range(5)]

#print(L)

#[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

这里需要注意,虽然L = [[0] * 5] * 5,也输出同样的效果,但是万万不能这样做!

因为[0] * 5是一个一维列表的对象,再* 5的话只是把对象的引用复制了3次。什么意思呢,就是如果我们将L[0][0] = 1,再输出L如下:

L = [[0] * 5] * 5

L[0][0] = 1

#print(L)

#[[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]]

我们只是想改变L[0][0],结果L[[n][0]全部改变了!这回知道为啥不能这么做了吧!

所以对于一位列表初始化,也建议大家用L = [[0] for i in range(5)]来代替L = [[0] * 5]

以上是 python list初始化技巧 的全部内容, 来源链接: utcz.com/z/389068.html

回到顶部