【Python】 初始化(二维)列表常见的错误

文中更多细节待补充~

快速初始化一维列表

快速初始化一维列表,一般使用data = [0]*n来创建具有n个0的列表——所有元素都指向同一个整数实例。

【Python】 初始化(二维)列表常见的错误_第1张图片

初始化二维列表

  • data = ([0]*c)*r :([0]*c)确实创建了一张有c个0的列表,但是将此列表乘r,只会创建一张长度为r*c的一维列表。

  • data = [[0]*c]*r :会得到一个二维列表,但是data列表的 r个元素都指向了同一个实例——一个含有c个0的列表。如果改变data[0][0]的值,很有可能同时改变data[2][0]的值,因为data[0]和data[2]指向同一个第二级列表。 列表可变
    【Python】 初始化(二维)列表常见的错误_第2张图片

  • 使用列表推导式:data = [[0]*c for _ in range(r)]

你可能感兴趣的:(Python基础,python,list)