Python列表初始化的坑

Posted 帅气无敌朋子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python列表初始化的坑相关的知识,希望对你有一定的参考价值。

二维列表初始化

L=[[0]*n]*m方式初始化

  • 初始化一个 \\(m\\times n\\) 的二维列表,初值全为0
L=[[0]*3]*2
print("初始的:",L)
#赋值
for i in range(2):
  for j in range(3):
    L[i][j]=i+j
print("赋值后:",L)
  • 输出结果如下:
>>>初始的:
[[0,0,0],[0,0,0]]
>>>赋值后:
[[1,2,3],[1,2,3]]

列表表达式初始化

  • L=[[0 for _ in range(3)] for _ in range(2)]方式初始化
L=[[0 for _ in range(3)] for _ in range(2)]
print("初始的:",L)
#赋值
for i in range(2):
  for j in range(3):
    L[i][j]=i+j
print("赋值后:",L)
  • 输出结果如下:
>>>初始的:
[[0,0,0],[0,0,0]]
>>>赋值后:
[[0,1,2],[1,2,3]]

初始化方式不同导致赋值后结果不同原因

以上是关于Python列表初始化的坑的主要内容,如果未能解决你的问题,请参考以下文章

13 个非常有用的 Python 代码片段

Python的类成员变量默认初始值的坑

python 使用入的坑

python基础之列表的坑

Python代码阅读(第26篇):将列表映射成字典

python的坑--你知道吗?