shallow copy & deep copy

import copy


def shallow_n_deep_copy():
    a = {'a': [1, 2, 3]}
    b = a.copy()
    print('a:', a, 'b:', b)
    a['a'].append(4)
    print('a:', a, 'b:', b)
    c = copy.deepcopy(a)
    a['a'].append(5)
    print('a:', a, 'b:', b, 'c:', c)


def init_2d_array_error(i, j, value):
    numlist = [[value]*j]*i
    return numlist


def init_2d_array_ok(i, j, value):
    numlist = [[value for y in range(0, j)] for x in range(0, i)]
    return numlist


if __name__ == "__main__":
    shallow_n_deep_copy()
    print("2*3=", 2*3)
    print("2**3=", 2**3)
    a = init_2d_array_error(2, 3, 0)
    print(a)
    a[0][1] = 1
    print(a)
    b = init_2d_array_ok(2, 3, 0)
    print(b)
    b[0][1] = 1
    print(b)

console output

a: {'a': [1, 2, 3]} b: {'a': [1, 2, 3]}
a: {'a': [1, 2, 3, 4]} b: {'a': [1, 2, 3, 4]}
a: {'a': [1, 2, 3, 4, 5]} b: {'a': [1, 2, 3, 4, 5]} c: {'a': [1, 2, 3, 4]}
2*3= 6
2**3= 8
[[0, 0, 0], [0, 0, 0]]
[[0, 1, 0], [0, 1, 0]]

[[0, 0, 0], [0, 0, 0]]
[[0, 1, 0], [0, 0, 0]]

发布了83 篇原创文章 · 获赞 4 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/hope_worker/article/details/104168683