python 引用的含义,尤其注意列表跟字典的使用

a = '12345'
b = a
a = 'sssss'
print('a ===== %s' % a)
print('b ===== %s' % b)

结果:

  a ===== sssss
  b ===== 12345

字符串或者数字的引用指向的是一个值的地址

  


 

list 

a = [1, 2, 3, 4]
b = a
b[1] = 5
print('a ===== %s' % a)
print('b ===== %s' % b)

结果

a ===== [1, 5, 3, 4]
b ===== [1, 5, 3, 4]

list的引用,指向的是列表的地址,并不是列表的内容,这种情况会修改list的本身,不想修改list的本身,请使用copy()

如果要复制的列表中包含了列表, 那就使用 copy.deepcopy()函数来代替


a = [1, 2, 3, 4]

b = a.copy() 

b[0] = 5
print('a ===== %s' % a)
print('b ===== %s' % b)

结果:

a ===== [1, 2, 3, 4]
b ===== [5, 2, 3, 4]


Dictionary 字典

a = {
'a': 1,
'b': 2,
'c': 3
}

b = a
b['b'] = 4
print('a ===== %s' % a)
print('b ===== %s' % b)

结果:

a ===== {'a': 1, 'b': 4, 'c': 3}
b ===== {'a': 1, 'b': 4, 'c': 3}

字典的引用,指向的是字典的地址,并不是字典的内容,这种情况会修改字典的本身,不想修改字典的本身,请使用copy()

如果要复制的列表中包含了列表, 那就使用 copy.deepcopy()函数来代替


a = {
'a': 1,
'b': 2,
'c': 3
}

b = a.copy()
b['b'] = 4
print('a ===== %s' % a)
print('b ===== %s' % b)

结果:

a ===== {'a': 1, 'b': 2, 'c': 3}
b ===== {'a': 1, 'b': 4, 'c': 3}

 

posted @ 2018-03-22 11:09  静心_心静  阅读(1276)  评论(0编辑  收藏  举报