在領釦的刷題過程中會經常遇到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)