Python list 初始化技巧

2022-06-10 13:51:09 字數 1008 閱讀 7625

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]

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] * 5l[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初始化 Python list初始化

1 基本方法。lst 1,2,3,4,5 2 初始化連續數字。lst n for n in range 5,10 print lst 5,6,7,8,9 3 初始化n個相同值。兩種方式 lst x for n in range 5 print lst x x x x x lst z 5 print ...

小技巧 陣列初始化

簡單說一下memset函式的使用方法。memset函式會把乙個型別的東西按位元組清空,乙個位元組是8位,所以按理講memset對int陣列實現統一賦值的操作的時候只能賦值0或者 1。如果不這樣的話,就會導致乙個迴圈出現。比如,你想對整個陣列賦值2的話,因為2的二進位制是10,八位的話就是0000,0...

初始化 指定初始化

id alloc 物件的誕生過程,主要是從作業系統獲得一塊足夠大的記憶體,以存放該類的全部例項變數,並將其指定為存放記憶體物件的實力變數的位置。alloc方法同時將這塊記憶體全部設定為0。結果是 bool變數初始化為no,所有的int型別變數為0,float變數為0.0,所有的指標為nil.obje...