为了账号安全,请及时绑定邮箱和手机立即绑定

python列表怎么复制

python列表怎么复制

米琪卡哇伊 2018-07-10 13:04:12
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

假设现有列表为a, 复制一个新列表为b。

用 b=a 这个语句,并不会复制出一个新的列表,只是复制了列表的地址。

无论是对a还是b进行修改,影响的都是同一个列表。


我们需要使用copy模块中的deepcopy函数:

123import copya=[123]b=copy.deepcopy(a)

这时的b才是一个列表,而不是列表的地址了。


查看完整回答
反对 回复 2018-07-26
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

提问者这么短的描述,有点无法看懂,那就按照通常的几种方法来说吧:

  1. 简单列表的拷贝

    已知一个列表,求生成一个新的列表,列表元素是原列表的复制

    a=[1,2]
    b=a

    这种其实并未真正生成一个新的列表,b指向的仍然是a所指向的对象。

    后果:如果对a或b的元素进行修改,a,b的值同时发生变化。

    可以使用以下方法解决:

    a=[1,2]
    b=a[:]

    这样修改a对b没有影响。修改b对a没有影响。

  2. 复杂列表的拷贝:

可以使用copy模块中的deepcopy函数。修改测试如下:

import copy
a=[1,[2]]
b=copy.deepcopy(a)


查看完整回答
反对 回复 2018-07-26
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞


import copy = [123] #引用= a #浅拷贝= copy.copy(a) #深拷贝= copy.deepcopy(a) #列表解析= [i for in a]


以上几种都姑且可以称为复制,但也有一些区别


查看完整回答
反对 回复 2018-07-26
  • 3 回答
  • 0 关注
  • 912 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信