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

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

    按存值个数区分

    | 标量/原子类型 | 数字,字符串 | | :—- | :—- | | 容器类型 | 列表,元组,字典 |

按可变不可变区分

可变 列表,字典
不可变 数字,字符串,元组,布尔值

按访问顺序区分

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

其他(for,enumerate,range)

for 循环

用户按照顺序循环可迭代对象的内容。

  1. s = '先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。'
  2. for i in s:
  3. print(i)
  4. li = ['甲','乙','丙','丁']
  5. for i in li:
  6. print(i)
  7. dic = {'a':1,'b':2,'c':3}
  8. for k,v in dic.items():
  9. print(k,v)

enumerate:枚举

对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

  1. li = ['甲','乙','丙','丁']
  2. for i in li:
  3. print(i)
  4. for i in enumerate(li):
  5. print(i)
  6. for index,value in enumerate(li):
  7. print(index,value)
  8. for index,value in enumerate(li,100): #从哪个数字开始索引
  9. print(index,value)

range

指定范围,生成指定数字

  1. for i in range(1,10): #顾头不顾尾
  2. print(i)
  3. for i in range(1,10,2): # 步长
  4. print(i)
  5. for i in range(10,1,-2): # 反向步长
  6. print(i)

image.png