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影响 >>>这次的小例子就到这里了。如果感觉不错的话,请多多点赞支持哦。。。