python2.7练习小例子(七)

本文介绍多种Python列表复制的方法,包括浅拷贝与深拷贝的区别,适用于不同场景的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    7):题目:将一个列表的数据复制到另一个列表中。

    程序分析:使用列表[:]。

    程序源代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

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

    以上实例输出结果为:

[1, 2, 3]

    使用 Python2 的参考解法:

>>> import copy
>>> a = [1, 2, 3]
>>> b=copy.copy(a)
>>> print(b)
[1, 2, 3]

    使用 Python3 的参考解法:

>>> a = [1, 2, 3]
>>> b=a.copy()
>>> print(b)
[1, 2, 3]

    使用列表生成式:

>>> a=[1,2,3,4]
>>> b=[i for i in a]
>>> print(a)
[1, 2, 3, 4]
>>> 
    
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

"""将一个列表的数据复制到另一个列表中。"""

"""
使用[:]

"""

a = [1,2,3]
b = a[:]
print b       # 将a的数据赋值给b 当a的数值发生改变时b不变
[1, 2, 3]
a = [1,2,3]
b = a
print b       # 将a的地址赋值给b 当a的数值发生改变时b随之改变
[1, 2, 3]
a = [1,2,3]
b = a[:]
print b
a[0] = 0
print a        # 将a的数据赋值给b 当a的数值发生改变时b不变
print b
[1, 2, 3]
[0, 2, 3]
[1, 2, 3]
a = [1,2,3]
b = a
print b
a[0] = 0
print a         # 将a的地址赋值给b 当a的数值发生改变时b随之改变
print b
    
a=[1,2,3,4,5]
b=list()
for i in a:b.append(i)
print b

    比较暴力的一个方法:

# -*- coding: UTF-8 -*-
#讲列表复制到另一个列表里
a = [1,2,3,4,5,6,7,8,9]
b = a*1
print(b)

    表1拓展到表2中:

#coding=utf-8

list1 = [1,2,3]
list2=[]
list2.extend(list1)
print list2

    补充一个深拷贝与浅拷贝的问题:

>>> import copy
>>> a = [1,2,3,4,5]
>>> b = ["A","B",a]
>>> #浅拷贝
>>> c = b[:]
>>> c
['A', 'B', [1, 2, 3, 4, 5]]
>>> a[0] = 11
>>> c
['A', 'B', [11, 2, 3, 4, 5]]
>>> #此时a变化c跟着变化
>>> #深拷贝
>>> c = copy.deepcopy(b)
>>> c
['A', 'B', [11, 2, 3, 4, 5]]
>>> a[0] = 111
>>> a
[111, 2, 3, 4, 5]
>>> c
['A', 'B', [11, 2, 3, 4, 5]]
>>> #此时c中数据不受a影响
>>>
    这次的小例子就到这里了。如果感觉不错的话,请多多点赞支持哦。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值