序列总结:元组和列表、字典和集合之间的关系

序列

序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间。比如一个整数序列[10,20,30,40],可以这样示意表示:
序列总结:元组和列表、字典和集合之间的关系
由于 Python3 中一切皆对象,在内存中实际是按照如下方式存储的:

a = [10,20,30,40]

序列总结:元组和列表、字典和集合之间的关系

从图示中,我们可以看出序列中存储的是整数对象的地址而不是整数对象的

python中常用的序列结构:字符串、列表、元组。

他们和字典、集合里面的值(对象)可变不可变的特性又可以分为:
序列总结:元组和列表、字典和集合之间的关系

序列解包:

用于元组、列表、字典。
序列解包可以让我们方便的对多个变量赋值。

总结:

1. 元组和列表有哪些共同点?有哪些不同点?
共同点:
① 他们都属于序列(均是容器对象),都是线性表,可以存储不同类型的内容。
② 都可进行以下操作:
  i. 切片操作
  ii. 索引访问
  iii. 连接操作
  iv. 成员关系操作
  v. 比较运算操作
  vi. 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等。

不同点:
① 元组的声明使用小括号,而列表使用方括号,当声明只有一个元素的元组时,需要在这个元素的后面添加英文逗号;
② 列表是动态的数组,元组是静态的数组。元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。
③ 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

2. 集合和字典有什么关系?

共同点:
①都是使用花括号{}将任意对象括起来的集合
②他们都是无序的数据集合
③都是一种可变的容器模型(可变的序列)。

不同点:
①存储对象不一样
  字典是由”键-值”(key-value)对组成的集合,字典的”值”(key)通过”键”(value)来引用。键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一,且key可存储任意类型对象。
  集合不支持下标索引,它是可变的数据类型,集合中的元素是唯一的,且不可以存列表和字典,一般用于元组或者列表中的元素去重。
②打印输出顺序不一样
  使用print输出字典的时候,通常输出的顺序和定义的顺序是不一致的;输出集合顺序和定义的一致。
③集合底层是字典实现,集合的所有元素都是字典中的“键对象”。