29 数据类型总结

目录

按存储空间的占用分-从低到高(了解)

  1. 数字
  2. 字符串
  3. 集合:无序,即无序存索引相关信息
  4. 元组:有序,需要存索引相关信息,不可变
  5. 列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
  6. 字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改

按存值个数区分(掌握)

存值个数数据类型
单个值 数字,字符串
多个值(容器) 列表,元组,字典,集合

按可变不可变区分(掌握)

可变or不可变数据类型
可变 列表,字典,集合
不可变 数字,字符串,元组

有序无序区分(掌握)

有序or无序数据类型
有序(可按索引取值) 字符串,列表,元组
不可变 字典,集合

按访问类型区分(了解)

访问类型数据类型
直接访问 数字
顺序访问(序列类型) 字符串,列表,元组
key值访问(映射类型) 字典

浅拷贝和深拷贝(掌握)

浅拷贝

拷贝的是地址引用。可以找到共同的内容

地址一样,内容一样

一方修改了,另一方受影响

a = [1, 2, 3, 4]
b = a
print(id(a))
print(id(b))
a.append(5)
print(a)
print(b)
4586377800
4586377800
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

深拷贝

深拷贝的是内容一样。地址不一样。

一方修改了,另一方不受影响。

b = copy.deepcopy(a),b得到的内容与a的内容完全一样,地址不一样。

就算a中有对象引用,b中对应的引用的对象依然是内容一样,地址不一样。

注意:如果是一个不可变对象(内部存储还是不可变对象),深拷贝的结果 = 浅拷贝,地址一样,因为不可变对象值变id也会跟着变化,也就是说只有可变对象有深拷贝。

# 这个是深拷贝
import copy
a = [1, 2, 3, 4]
b = copy.deepcopy(a)
print(id(a))
print(id(b))
print(a)
print(b)
a.append(5)
print(a)
print(b)
4586325448
4586084168
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
# 这个是浅拷贝
import copy
a = (1, 2, 3, 4)
b = copy.deepcopy(a)
print(id(a))
print(id(b))
print(a)
print(b)
4586310136
4586310136
(1, 2, 3, 4)
(1, 2, 3, 4)
# 这个是深拷贝
import copy
a = (1, 2, 3, 4, [1, 2])
# a = (1,2,3,4,(1,2))  这是浅拷贝
b = copy.deepcopy(a)
print(id(a))
print(id(b))
print(a)
print(b)
4585640448
4585131968
(1, 2, 3, 4, [1, 2])
(1, 2, 3, 4, [1, 2])
# 这个是深拷贝
import copy
a = [11, 22, 33]
b = [44, 55, 66]
c = (a, b)
d = copy.deepcopy(c)
print(id(c))
print(id(d))
print(c)
print(d)
a.append(120)
# c[0].append(120)
print(c)
print(d)
4585904264
4586160712
([11, 22, 33], [44, 55, 66])
([11, 22, 33], [44, 55, 66])
([11, 22, 33, 120], [44, 55, 66])
([11, 22, 33], [44, 55, 66])

六大数据类型内置方法(掌握)

数据类型总结-搞笑结束.jpg

掌握—》熟悉—》了解
- 掌握:倒背如流。
- 熟悉:正背如流。
- 了解:看到能够想起。


posted @ 2019-05-05 00:16  tank_jam  阅读(116)  评论(0编辑  收藏  举报