Python常用数据结构-列表list

列表的定义

  • 列表是有序的可变元素的集合,使用中括号[ ]包围,元素之间用逗号分隔;
  • 列表是动态的,可以随时扩展和收缩;
  • 列表是异构的,可以同时存放不同类型的对象;
  • 列表允许出现重复的元素。
    列表的示意图:

列表的创建

方法一:通过构造函数创建
image
方法二:中括号创建并填充
image
方法三:列表推导式
image

索引

可以通过索引值来访问对应的元素:
:rightwards_hand:默认正向索引,编号从0开始;
:leftwards_hand:支持反向索引,编号从 -1 开始。
索引的示意图:


示例:
image

切片

[start:stop:step]
start值:开始索引值,若没有指定,则默认为0;
stop值:结束索引值,但不包括这个结束索引值;若没有指定,则取列表允许的最大索引值;
step值:步长值,指每一步的大小,若没有指定,则默认为1;
以上三个值都是非必填的。


示例:
image

运算符

重复:使用*运算符,可以重复生成列表元素。
合并:使用+运算符,可以将列表合二为一。
示例:
image

成员检测

in:检查一个元素是否在列表中,若在则返回True,否则返回False。
not in:检查一个列表是否不包含某个元素,若不在则返回True,否则返回False。
示例:
image

列表常用方法

1. append()
append(item):将一个对象item添加到列表的末尾。
入参:对象item
返回:None
示例:
image

2. extend()
extend(iterable):将一个可迭代对象的所有元素,添加到列表末尾。
入参:可迭代对象iterable
返回:None
示例:
image

3. insert()
insert(index, item):将一个对象插入到指定的索引位置,原索引位置及后面的元素后移一位。
入参:索引值index,一个对象item
返回:None
示例:
image

4. pop()
pop(index)或pop():弹出并返回所指定索引的元素。
入参:索引值index,可不传
返回:
a. 指定索引的元素;
b. 未指定索引,则返回末尾元素;
c. 索引值不正确,或者列表已经为空,则引发IndexError报错。
示例:

5. remove()
remove(item):移除列表中第一个等于item的元素。目标元素必须已存在,否则引发ValueError报错。
入参:指定元素item
返回:None
示例:

6. sort()
sort(key=None, reverse=False):对列表进行原地排序,只使用<来进行各项间比较。
入参:支持2个关键字参数
key——指定带有一个参数的函数,用于从每个列表元素中提取比较键。
reverse——默认值为False表示升序,为True表示降序。
返回:None
示例:

7. reverse()
reverse():将列表中的元素顺序反转。反转只是针对索引值,元素之间不相互比较。
入参:无
返回:None
示例:
image

列表嵌套

列表嵌套是指在列表里存放列表;列表的常用方法都适用于列表嵌套。
示例:
image

列表推导式

列表推导式是指循环创建列表,相当于for循环创建列表的简化版。
语法:[x for x in li if x …]
示例: