Python练习题-007

题目-007:将一个列表的数据复制到另一个列表中

  • 分析有很多中方法,大概可分为以下2类:数值赋值(当a的数值发生改变时b不变);地址赋值(当a的数值发生改变时b随之改变);另外copy存在深拷贝和浅拷贝的问题
  • Python版本:Python 3.6.5

    代码1

# A-1 数值赋值
a = [1,2,3]
b = a[:]
a[0] = 0
print(a,b)
[0, 2, 3] [1, 2, 3]

    代码2

# A-2 数值赋值
a = [1,2,3]
b = a*1
a[0] = 0
print(a,b)
[0, 2, 3] [1, 2, 3]

    代码3

# A-3 数值赋值
a = [1,2,3]
b = a.copy()
a[0] = 0
print(a,b)
[0, 2, 3] [1, 2, 3]

    代码4

# B-1 地址赋值
a = [1,2,3]
b = a
a[0] = 0
print(a,b)
[0, 2, 3] [0, 2, 3]

    代码5

# C:深拷贝与浅拷贝的问题-浅拷贝1
a = [1,2,3]
b = ["a","b",a]
c = b[:]
print(c)
a[0] = 10
print(c)
['a', 'b', [1, 2, 3]]
['a', 'b', [10, 2, 3]]

    代码6

# C:深拷贝与浅拷贝的问题-浅拷贝2
a = [1,2,3]
b = ["a","b",a]
c = b.copy()
print(c)
a[0] = 10
print(c)
['a', 'b', [1, 2, 3]]
['a', 'b', [10, 2, 3]]
     代码7

# C:深拷贝与浅拷贝的问题-深拷贝
import copy
a = [1,2,3]
b = ["a","b",a]
c = copy.deepcopy(b)
print(c)
a[0] = 10
print(c)
['a', 'b', [1, 2, 3]]
['a', 'b', [1, 2, 3]]





你可能感兴趣的:(python)