列表、字典

不可变类型

数字、字符串、元组、不可变集合

  1. a=[1,2,3]
  2. b=a
  3. b[0]=5
  4. print(b,a)
  5. #[5, 2, 3] [5, 2, 3]
  6. # 变量名为对象的指针,用来计数空间引用情况
  7. # 当其改变其对象的部分内容时,另外一个变量的内容也会跟着改变

可变与不可变指的是?
当列表本身发生变化时,id()未发生变化。
当字符串发生变化时,id()也会发生变化

  1. >>> str_1 = "asdf"
  2. >>> str_1
  3. 'asdf'
  4. >>> id(str_1)
  5. 1858646709840
  6. >>> str_1 += str_1
  7. >>> str_1
  8. 'asdfasdf'
  9. >>> id(str_1)
  10. 1858646817712

+=与=的区别

  1. a = [1, 2, 3]
  2. def test(num):
  3. num += num
  4. print(num)
  5. test(a)
  6. print(a)
  7. #[1, 2, 3, 1, 2, 3] 基于在原对象上进行操作
  8. # [1, 2, 3, 1, 2, 3]
  1. a = [1, 2, 3]
  2. def test(num):
  3. num = num + num
  4. print(num)
  5. test(a)
  6. print(a)
  7. #
  8. [1, 2, 3, 1, 2, 3] # 重新赋值操作
  9. [1, 2, 3]