Python列表初始化的坑

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]]

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

Original: https://www.cnblogs.com/brilliantM/p/14816376.html
Author: 帅气无敌朋子
Title: Python列表初始化的坑

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/684768/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球