码迷,mamicode.com
首页 > 编程语言 > 详细

Python list 初始化技巧

时间:2018-12-27 13:17:25      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:for   初始   版本   range   pre   输出   效果   二维   style   

1、一维列表

1.1 递增列表

# 初始化递增的list,与L = [i for i in range(10)] 效果相同
L = range(10) # 版本变化
L = i for i in range(10)
# print(L) # [0,1,2,3,4,5,6,7,8,9]

1.0 常数0列表

#初始化每项为0的一维列表
# method 1 L = [[0] * 5]
# method 2
L = [[0] for i in range(5)]
# print(L) #[0,0,0,0,0]

 

2、二维列表

L = [[0] * 5 for i in range(5)]
L = [[[0] for i in range(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 初始化技巧

标签:for   初始   版本   range   pre   输出   效果   二维   style   

原文地址:https://www.cnblogs.com/xiaoniu-666/p/10184184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!