python 生成固定维度列表

今天在做一道动态规划题时 遇到一个问题 耗费了许多时间 最终发现是列表生成的问题

涉及到python中 “深复制”和“浅复制”

目的:生成一个2维列表 每一维包含9个元素 

L = [[0]*9]
L = L*2

最开始用上述代码生成 但只要后面对列表中某一行的元素进行修改 则会修改所有行

如:

for i in range(6):
    L[0][i] = 1

上述代码本意为对L中第1行前6列元素赋值为一  但这样之后所有行都改变了。这是因为 "*" 操作符相当于"浅复制"的概念。只复制了一个"指针"过去。

要实现深复制,应用下述代码生成列表:

L = [[0]*9 for i in range(2)]

 

参考:

http://www.cnblogs.com/yinghao1991/p/8641236.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值