列表是 python 中最常用、最重要的数据结构之一。
一般来说,我们用列表来管理一组数据对象,这些对象可能是同一类型,也可能是不同类型。列表不仅记录了这些数据对象,而且也记录了它们之间的一种顺序关系。
在 python 中,与列表非常类似的数据结构还有元组和字符串等,它们所支持的操作,及其底层实现,都有非常类似的地方,可以一起讨论、相互比较。
1. 列表是什么
对于一种数据结构,我们一般需要考虑两个基本问题,一个是如何在存储空间保存数据,一个是要支持哪些操作。而需要支持的操作,往往也决定了我们存储数据的具体方式,不同存储方式,可能导致完全不同的操作效率。
从我们使用者的角度看,列表应该支持哪些操作呢?
1.1 首先,当然是创建列表
我们可以使用多种方式来创建一个列表:
# 1. 使用中括号
a_list = []
b_list = ['a', 'b', 'c']
# 2. 使用列表推导式
c_list = [x for x in iterable]
# 3. 使用类型构造函数
d_list = list()
e_list = list(iterable)
1.2 其次,是检查一个列表,如它的长度,是否为空,是否包含某个元素等
这类操作不会改变列表的内容:
# 1. 判断长度
length = len(a_list)
# 2. 当且仅当列表为空,在if条件中被判断为False
if a_list: pass
# 3. 是否包含某个元素
if a in a_list: pass
if a not in a_list: pass
# 4.