目录
一、定义
1.1 直接定义
lst = [] 定义空表
lst = ["a",1,(1,2)] 初始化表,列表装一切
print(type(lst))
显示:
<class 'list'>
1.2 使用其他容器来初始化列表
a = ('a','b','c') 先初始化一个元组
lst = list(a) 强制类型转换,用元组初始化列表
print(type(lst))
显示:
<class 'list'>
二、列表是个筐,什么都能装
列表中的元素是有顺序的,元素可以重复。
三、索引方式和切片
3.1 正向索引与逆向索引
列表与字符串具有相同的索引方式:
正向索引:正向计数,从0开始到正无穷。
逆向索引:逆向计数,从-1开始到负无穷。
每个元素具有两个索引序号。
a = ('a','b','c')
lst = list(a)
print(lst[-1],"和",lst[2])
显示:
c 和 c
3.2 切片方法
切片方法与字符串相同。
详情见字符串篇,切片章节
3.3 切片方法不改变原列表
想要将列表元素倒序,可以切片后重新赋值。
3.4 列表可以通过索引被改变
lst = [1,2,3,4,5,6,7,8,9,10]
lst[0]=0
print(lst)
显示:
[0, 2, 3, 4, 5, 6, 7, 8, 9, 10]
字符串不能通过索引方式被改变,但是列表可以。
四、运算:‘+’ ‘*’ ‘len()’ ‘in’
4.1 ‘+’:列表可以通过‘+’连接
lst1 = [1,2,3,4,5]
lst2 = [6,7,8,9,10]
lst = lst1 + lst2;
print(lst)
显示:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
4.2 ‘*’:列表可以通过‘*’复制
lst1 = [1,2,3,4,5]
lst = lst1 * 3;
print(lst)
显示:
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
4.3 ‘len()’:查看列表长度
lst1 = [1,2,3,4,5]
print(len(lst1))
显示:
5
4.4 ‘in’:查询元素是否在列表中
lst1 = [1,2,3,4,5]
print('1' in lst1 )
显示:
False 查询的是‘1’字符,数字1在列表中
五、增加列表元素
列表是容器:
可以增加列表长度,但是列表的内存地址没有变化。
5.1 append()函数
添加元素到列表末尾。
lst1 = [1,2,3,4,5]
lst1.append(6)
print(lst1 )
显示:
[1, 2, 3, 4, 5, 6]
5.2 insert()函数
lst.insert(a,b) 在a位置上插入b值,原来的元素后移
举例:
lst1 = [1,2,3,4,5]
lst1.insert(0,0)
print(lst1 )
显示:
[0, 1, 2, 3, 4, 5]
5.3 extend()函数
extend()函数参数需要符合要求:可迭代对象。
lst1 = [1,2,3,4,5]
lst1.extend(0)
print(lst1 )
错误:TypeError: 'int' object is not iterable
①列表:
lst1 = [1,2,3,4,5]
lst2 = [6,7,8,9]
lst1.extend(lst2)
print(lst1 )
显示:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
②字符串:
lst1 = [1,2,3,4,5]
s = "nlp"
lst1.extend(s)
print(lst1 )
显示:
[1, 2, 3, 4, 5, 'n', 'l', 'p']
字符串会被拆分成单个字符存入列表。
六、删除列表元素
6.1 pop()
①无参情况 默认删除最后一位,将值返回
②有参情况 删除参数位置元素,将值返回
lst1 = [1,2,3,4,5]
print(lst1.pop())
lst2 = [1,2,3,4,5]
print(lst2.pop(-2))
显示:
5
4
6.2 remove()
删除查找到的第一次出现的参数值。无返回值。
lst1 = [1,2,3,4,5]
lst1.remove(2)
print(lst1)
显示:
[1, 3, 4, 5]
6.3 clear()
将列表清空,相当于把筐里的东西倒掉,没有换筐。
lst1 = [1,2,3,4,5]
方法1:
lst1 = [] 相当于重建了个列表,指向lst1。原来的list由于没有指向,被回收删除。
方法2:
lst1.clear() 把原列表清空,列表内存地址不发生改变。
七、排序
注意:只有列表中元素类型相同才能进行排序。
7.1 按大小排序:sort()
①list.sort()会改变列表内元素位置
lst1 = [8,2,7,4,5]
lst1.sort()
print(lst1)
显示:
[2, 4, 5, 7, 8]
无参时默认从小到大排序
参数()reverse = True 将从大到小排序
lst1 = [8,2,7,4,5]
lst1.sort(reverse=True)
print(lst1)
显示:
[8, 7, 5, 4, 2]
②sorted(list)新复制一个列表进行排序
lst1 = [8,2,7,4,5]
print(sorted(lst1))
print(lst1)
显示:
[2, 4, 5, 7, 8]
[8, 2, 7, 4, 5]
7.2 将列表倒序
①list.reverse()会改变列表内元素位置
lst1 = [8,2,7,4,5]
lst1.reverse()
print(lst1)
显示:
[5, 4, 7, 2, 8]
②reversed(list)新复制一个列表进行倒序排列
lst1 = [8,2,7,4,5]
print(reversed(lst1))
print(lst1)
显示:
<list_reverseiterator object at 0x00000218E0CA6EE0> 这个是列表类迭代对象,可以装入列表中
[8, 2, 7, 4, 5]
举例:
lst1 = [8,2,7,4,5]
lst2 = list(reversed(lst1))
print(lst2)
显示:
[5, 4, 7, 2, 8]
八、比较列表与字符串
8.1 列表与字符串的相互转换
①字符串-->列表
s1 = "python"
lst = list(s1) 会将字符串的每个字符都拆分出来,放入列表中
print(lst)
显示:
['p', 'y', 't', 'h', 'o', 'n']
②列表-->字符串
列表元素都是string形式,才能用这个方法连接起来。
lst = ['p','y','t','h','o','n']
s1 = ''.join(lst)
print(s1)
显示:
python
③注意,下面的方法无法转换得到连接起来的字符串
lst = ['p','y','t','h','o','n']
s1 = str(lst)
print(s1)
print(type(s1))
显示:
['p', 'y', 't', 'h', 'o', 'n'] 并不是连接起来的字符串
<class 'str'>