浪狼郎 2018-11-20 02:18 采纳率: 0%
浏览 618

python两种创建列表方式在更新后的区别

用for循环创建一个二维列表,和用乘号*创建一个二位列表,输出的结果一摸一样,
但是在操作之后就不一样了
代码如下:

im,jm = 4,4
sign1 = []
sign2 = []
temp = []
for i in range(im):
    for j in range(jm):
        temp.append(True)
    sign1.append(temp)
    temp = []

print(sign1,'\n')

sign2 = [[True]*jm]*im
print(sign2,'\n')

sign1[0][0] = False
sign2[0][0] = False

print(sign1,'\n')
print(sign2,'\n')


结果如下

 [[True, True, True, True], 
 [True, True, True, True], 
 [True, True, True, True], 
 [True, True, True, True]] 

[[True, True, True, True],
[True, True, True, True], 
[True, True, True, True], 
[True, True, True, True]] 

[[False, True, True, True], 
[True, True, True, True], 
[True, True, True, True], 
[True, True, True, True]] 

[[False, True, True, True],
[False, True, True, True], 
[False, True, True, True], 
[False, True, True, True]] 

(为了方便大佬们看,我自己加了换行)

  • 写回答

2条回答 默认 最新

  • 可爱的小书包 2018-11-20 03:15
    关注

    我觉得你第二个之所以不正确,是因为python你写了第一个[True, True, True, True]之后,自动的转为引用方式,而不是直接创建新地址存放,所以你修改一个,其他的地方也会被干扰

    评论

报告相同问题?

悬赏问题

  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备