列表(List)
为便于浏览,代码展示部分整体被放在文字的最下面
格式:[元素1, 元素2, 元素3, ..., 元素n]
特点:可变类型数据,数据的操作都是针对的原始数据修改,并没有生成(返回)新数据对象
增
- .append(元素),增加新元素到列表末尾,元素也可以是一个列表,被整体嵌套添加至末尾
- .insert(index, object) 在指定下标位置index前插入元素object
- .extend(j),通过extend可以将另一个集合j中的元素逐一添加到列表末尾
删
- del list[下标] : 根据下标进行删除
- .pop() : 删除最后一个元素
- .remove() : 根据元素的值进行删除(仅删除第一次出现的)
查
- 逻辑判断条件,元素 in(not in)列表:
- not in(不存在),如果不存在那么结果为true,否则false
- in(存在),如果存在那么结果为true,否则为false
- .index(元素[,初始下标,结束下标] ) 返回指定范围内查询元素第一次出现的下标,不存在则报异常, [ ]内表示可选参数,可以省略
- .count(元素 ) 查询列表中该元素共出现的次数
改:
- 修改元素的时候通过指定下标来访问列表元素,为指定的列表下标赋值即可
- 文档下方有代码示例
排序
- .sort( reverse=False ) 将列表顺序排列,默认按数值从小到大排序
- reverse=Turn 从大到小排序,不同字符,按照编码的数值大小进行排序
反转(逆置)
- .reverse() 将列表内所有元素进行直接倒置反转(没有排序)
列表嵌套
- 操作嵌套列表,只要把要操作元素的下标当作变量名来使用即可
元组(Tuple)
格式:(元素1, 元素2, 元素3, ..., 元素n) 特殊情况,一个元素时,(元素,) ‘,’不可省略
查
- 逻辑判断条件: 元素 in(not in)列表:
- not in(不存在),如果不存在那么结果为true,否则false
- in(存在),如果存在那么结果为true,否则为false
- .index(元素[,初始下标,结束下标] ):在指定范围内查询元素第一次出现的下标,不存在则报异常
- .count(元素):查询元组中该元素共出现的次数
代码
列表的使用效果
增 ---append ---insert ---extend
#定义一个列表用于测试
>>> list1 = [1,'a',2,'b','中国','str']
#添加一个元素至列表末尾
>>> list1.append('sss')
#查看添加后的列表内容
>>> list1
[1, 'a', 2, 'b', '中国', 'str', 'sss']
#指定下标,添加一个元素至下标前面
>>> list1.insert(5,'插入数据')
>>> list1
[1, 'a', 2, 'b', '中国', '插入数据', 'str', 'sss']
#测试插入一个整体列表
>>> list1.append([1,2,3,4,5])
#查看修改后,整个列表被当作一个元素插入
>>> list1
[1, 'a', 2, 'b', '中国', '插入数据', 'str', 'sss', [1, 2, 3, 4, 5]]
#整体元组被当作一个元素插入
>>> list1.append((1,1,1,1,1))
>>> list1
[1, 'a', 2, 'b', '中国', '插入数据', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1)]
#整个字典被当作一个元素插入
>>> list1.append({'name':'张三','age':'18'})
>>> list1
[1, 'a', 2, 'b', '中国', '插入数据', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '张三', 'age': '18'}]
#使用extend插入列表,列表中的元素被取出,分别作为一个元素添加到列表末尾
>>> list1.extend([666,666,666])
>>> list1
[1, 'a', 2, 'b', '中国', '插入数据', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '张三', 'age': '18'}, 666, 666, 666]
#使用extend添加元组
>>> list1.extend((777,777,777))
>>> list1
[1, 'a', 2, 'b', '中国', '插入数据', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '张三', 'age': '18'}, 666, 666, 666, 777, 777, 777]
使用extend添加字典,字典的每一个键被当作一个元素插入到列表中
>>> list1.extend({'123':'sss1','456':'sss2'})
>>> list1
[1, 'a', 2, 'b', '中国', '插入数据', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '张三', 'age': '18'}, 666, 666, 666, 777, 777, 777, '123', '456']
>>> list1.extend(*{'123':'sss1','456':'sss2'})
删 ---del ---pop ---remove
#定义一个列表
>>> list0 = [1,2,3,4,5]
>>> del list0
>>> list0
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
list0
NameError: name 'list0' is not defined
#报错 del 列表 会将整个列表删除,再次查询列表就不存在了
>>> list1 = [1,2,3,4,5,6]
#指定下标进行删除元素
>>> del list1[0]
>>> list1
[2, 3, 4, 5, 6]
>>> del list1[2]
>>> list1
[2, 3, 5, 6]
#pop是一种特殊的用法,会将列表中最后一个元素取出并返回,
#取出后原列表中该元素就不存在了,所以可以理解成删除除
>>> list1.pop()
6
>>> list1
[2, 3, 5]
>>> list1.pop()
5
>>> list1
[2, 3]
#空的列表不可以取出元素,会报错
>>> [].pop()
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
[].pop()
IndexError: pop from empty list
#remove可以指定元素值进行删除,但只会删除第一次删除的值
>>> list2 = [1,2,1,2,3,4,5]
>>> list2.remove(1)
>>> list2
[2, 1, 2, 3, 4, 5]
>>> list2.remove(2)
>>> list2
[1, 2, 3, 4, 5]
查 ---in ---not in ---index ---count
>>> [1] in [1,2,3,4,5]
False
#元素的值用(元素)包裹,使用[元素]是一个列表
>>> (1) in [1,2,3,4,5]
True
>>> [1] in [[1],1,2,3,4]
True
#也可以直接使用,不用()
>>> 'abc' in ['abc','sss','ddd']
True
>>>
>>> 5 not in [1,2,3,4,5]
False
>>> 5 not in [1,2,3,4]
True
>>> list1 = ['a','b','c','d','e']
>>> list1
['a', 'b', 'c', 'd', 'e']
#查询字符c在列表中第一次出现的下标
>>> list1.index('c')
2
#index查询指定元素的下标,不存时会报错抛出值不存在的异常
>>> list1.index('f')
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
list1.index('f')
ValueError: 'f' is not in list
#可以指定查找范围进行查找
>>> list1.index('c',0,3)
2
#查找范围,包含起始下标位,不包含结束位下标
>>> list1.index('c',0,2)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
list1.index('c',0,2)
ValueError: 'c' is not in list
#使用count可以查询指定元素共出现的次数
>>> list2 = [1,2,2,3,3,3,4,4,4,4]
>>> list2.count(1)
1
>>> list2.count(3)
3
>>> list2.count(5)
0
改 ---对指定下标进行重新赋值即可
>>> list1=[0,1,2,3,4]
>>> list1[1]=100
>>> list1
[0, 100, 2, 3, 4]
>>> list1[0] = "中国"
>>> list1
['中国', 100, 2, 3, 4]
>>>
排序 ---sort
>>> list2 = [2,3,22,11,1,44,23,4,1]
>>> list2.sort()
>>> list2
[1, 1, 2, 3, 4, 11, 22, 23, 44]
#数值按照大小进行排序,默认正序
>>> list2 = ['a','f','g','b']
>>> list2.sort()
>>> list2
['a', 'b', 'f', 'g']
#字符按照字符编码顺序进行排序
>>> list3 = [1,2,4,3,'a','c','b','3',2]
>>> list3
[1, 2, 4, 3, 'a', 'c', 'b', '3', 2]
>>> list3.sort()
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
list3.sort()
TypeError: '<' not supported between instances of 'str' and 'int'、
#字符和数值不可以进行一起排序,1是数值,'1'是字符串
#使用参数reverse=True,可以进行倒序
>>> list1 = [2,1,3,5,6,7]
>>> list1.sort(reverse=True)
>>> list1
[7, 6, 5, 3, 2, 1]
反转--- reverse
#reserve只进行翻转,并不进行排序
>>> list2 = [2,1,9,8,4,5,67]
>>> list2.reverse()
>>> list2
[67, 5, 4, 8, 9, 1, 2]
列表嵌套
>>> list0 = [[1,2,3,4],1,['a','b','c'],2,['中','国'],3,4,5,6]
>>> list0
[[1, 2, 3, 4], 1, ['a', 'b', 'c'], 2, ['中', '国'], 3, 4, 5, 6]
>>> list0[3]
2
#查看4号下标的元素
>>> list0[4]
['中', '国']
#取出的元素是一个列表,将这个取出的元素作为一个列表,在这个基础上继续取下标
>>> list0[4][0]
'中'
>>> list0[4][1]
'国'
>>> list0[0]
[1, 2, 3, 4]
>>> list0[0][3]
4
#多层嵌套都是一样的,在前一层的基础上继续取值
>>> list1 = [0,['中国',['a','b'],2,3,4,],2]
>>> list1[1]
['中国', ['a', 'b'], 2, 3, 4]
>>> list1[1][0]
'中国'
>>> list1[1][1]
['a', 'b']
>>> list1[1][1][0]
'a'
>>>
元组为不可变类型,只可以进行查找,不能够进行增改删
使用方法和列表类似,暂不举例了