- 列表
- 创建
- 元素访问
- 元素修改
- 列表遍历
- 列表的嵌套
- 列表复制
- 对列表进行统计和计算
- 列表排序
- 列表解析表达式
- 生成器表达式
列表是由一系列按照顺序排列的元素组成的一种数据类型,其中的元素可以是相同或不同类型的数据
创建- 语法格式:list_1=[ele1,ele2,ele3,....],使用赋值符直接创建列表
- 语法格式:list_1=[],创建一个空列表
- 语法格式:list_1=list(data),使用list()函数即将data转化为列表,其中data可以是range对象1、字符串、元组或其它可迭代数据
列表元素正向索引从0开始,逆向从-1开始
索引
| 正向 | 0 | 1 | 2 | … | n-1 |
|---|---|---|---|---|---|
| 元素 | 元素1 | 元素2 | 元素3 | … | 元素n |
| 逆向 | -n | -(n-1) | -(n-2) | … | -1 |
切片
取出列表部分元素
| 索引 | 描述 |
|---|---|
| [m,n] | 索引为m到索引到n-1的元素(不含n,左闭右开) |
| [m:] | 索引为m的元素到最后一个元素 |
| [:n] | 第一个元素到n-1的元素(不含n,左闭右开) |
| [-m,-n] | 索引为-m的元素到索引为-n-1的元素(不含-n,左闭右开) |
| [m,-n] | 索引为m的元素到索引为-n-1的元素 |
| [-m:] | 索引为-m的元素到索引为最后一个元素 |
元素添加
- 语法格式:listname.append(obj),列表对象的append()方法,用于在列表末尾追加元素
- 语法格式:listname.insert(n,x),列表对象的insert()方法,用于在索引为n的位置插入元素x(执行效率低)
- 语法格式:listname.extend(seq),列表对象的extend()方法,用于将一个列表中的全部元素添加到另一个列表后面
元素修改
语法格式:listname[n],通过索引获得元素并赋予新值(n可以为索引或切片)
元素删除
- 语法格式:del listname[n],根据索引值删除(n可以为索引或切片)
- 语法格式:listname.remove(obj),列表的remove()方法,若不确定元素在列表中的位置,可以根据元素值删除(列表中有多个相同元素时,只删除第一个)
- 语法格式:listname.pop(n),列表的pop()方法,删除并返回列表中索引为n的元素(n默认为-1,即删除最后一个元素)
- 语法格式:listname.clear(),清空列表中所有元素,使其成为空列表
列表所有元素
同时输出列表元素和其索引
语法格式:for index,item in enumerate(listname):
格式:list=[list_1,list_2,list_3,...]
二维列表的遍历
列表复制我们在前面讲过变量的真正意义可以看作是一个标签,其实列表名称也是一个变量(上面的例子中我们创建了两个标签指向同一块内存),使用简单的赋值操作定义的多个列表都将指向同一个内存地址,因此复制列表需要使用.copy()方法
对列表进行统计和计算-
获取元素出现次数(元素不存在返回0)
语法格式:listname.count(obj) -
获取指定元素首次出现的索引(元素不存在则抛出异常),从索引为n的位置开始查找(n默认为0)
语法格式:liistname.index(obj,n) -
统计数值列表的元素和
语法格式:sum(iterable,[,start])
- 使用列表对象的sort()方法(改变原列表)
语法格式:listaname.sort(key=None,reverse=False)
参数说明
| 参数 | 描述 |
|---|---|
| key | 表示从每一个元素中提取一个用于比较的键(如设置key=str.value,表示排序时不区分字母大小写)2 |
| reverse | 是否降序排列,值为True时降序,值为False时升序,默认升序 |
- 使用内置的sorted()函数(建立原列表的副本)
语法格式:sorted(iterable,key=None,reverse=False)
参数说明
| 参数 | 描述 |
|---|---|
| iterable | 列表名称 |
| key | 指定从每一个元素中提取一个用于比较的键(如str.lower表示排序时不区分字母大小写) |
| reverse | 是否降序排列,值为True时降序,值为False时升序,默认升序 |
- 使用列表对象的reverse()方法(改变原列表)
将原列表反向排序,语法格式:listname.reverse()
格式: [ 表达式 for 变量 in 列表 ]
根据一个已知列表,按照表达式规则生成一个新的列表
生成器表达式格式:( 表达式 for 变量 in 列表 )
生成器表达式和列表解析器两者有本质区别,列表解析表达式返回列表类型对象(创建使用小括号),生成器表达式是一个生成器对象,没有具体的值,只有在使用时才会一个个生成并且读到内存中(创建时使用中括号)
range函数用于创建一个整数序列对象,语法格式:range(start,stop[,step])
参数说明:start表示序列开始(默认为0,可选参数),end表示序列结束(左开右闭,不包括end),step表示步长(默认为1,可选参数)
当range()函数的参数中只有end和step时,可能并不会生成期望的序列
↩︎使用sort()方法的排序规则是先对大小写字母排序(第一位相同比较第二位,以此类推),然后再对小写字母排序,如果想要对字符串进行排序,就需要指定key参数
↩︎



