在领扣的刷题过程中会经常遇到list,而且需要一开始的时候进行初始化的需求,对list初始化有以下几个技巧:
一维列表:
初始化元素个数为8的的list列表
li = [i for i in range(8)]
print(li)
li = [1] * 10
print(li)
li[2] = 10
print(li)
二维列表:
li = [[0] * 3 for i in range(4)]
print(li)
li[0][1] = 3
print(li)
# 这里需要注意,虽然L = [[0] * 3] * 4,也输出同样的结果,但是不能这样做
# 因为[0] * 3是一个一维列表的对象,再 * 4的话只是把对象的引用复制了4次
li = [[0] * 3] * 4
print(li)
li[0][1] = 9
print(li)
在初始化二维列表的时候一般会使用到li = [[0] * 3 for i in range(4)]写法因为在后面修改的时候修改某一个元素的值不会影响到其他位置的值
代码如下:
if __name__ == '__main__':
# 一维列表
# 初始化递增的list
li = [i for i in range(8)]
print(li)
# 初始化每项为1的一维列表
li = [1] * 10
print(li)
# 修改list中的元素
li[2] = 10
print(li)
# 四行三咧的二维数组 https://www.cnblogs.com/wujingqiao/p/9651995.html
li = [[0] * 3 for i in range(4)]
print(li)
li[0][1] = 3
print(li)
# 这里需要注意,虽然L = [[0] * 3] * 4,也输出同样的效果,但是万万不能这样做!
# 因为[0] * 3是一个一维列表的对象,再 * 4的话只是把对象的引用复制了4次
li = [[0] * 3] * 4
print(li)
li[0][1] = 9
print(li)