列表和元组的用法
1、列表
数据格式 [数据1,数据2,数据3,数据4…]
列表可以一次存储多个数据,且可以有不同的数据类型。
列表可以通过下标查询
name_list = ['小明', '小王', '小李']
print(name_list[0]) # 小明
print(name_list[1]) # 小王
print(name_list[2]) # 小李
1.1 列表的函数
1.1.1 index()
用于返回指定数据所在位置的下标,若查询不到则报错。
语法:列表序列.index(数据, 开始位置下标, 结束位置下标)
name_list = ['小明', '小王', '小李']
print(name_list.index('小王', 0, 2)) # 1
1.1.2 count()
用于统计指定数据在当前列表中出现的次数。
name_list = ['小明', '小王', '小李']
print(name_list.count('小王')# 1
1.1.3 len()
访问列表长度,即列表中数据的个数。
name_list = ['小明', '小王', '小李']
print(name_list.len(name_list ) # 3
1.1.3 关键字 in 和 not in
- in:判断指定数据在某个列表序列,如果在返回True,否则返回False.
- not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False.
name_list = ['小明', '小王', '小李']
# 结果:True
print('小明' in name_list)
# 结果:False
print('小高' in name_list)
# 结果:True
print('小高' not in name_list)
# 结果:False
print('小明' not in name_list)
1.1.4 append()
用于增加指定数据到列表中。
语法: 列表序列.append(数据)
name_list = ['小明', '小王', '小李']
name_list.append('小高')
print(name_list)#['小明', '小王', '小李','小高']
列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据。
注意:列表也可以把列表和其他数据类型作为一个整体用append方法追加进去。
1.1.5 extend()
用于向表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表。(append方法是将整体追加到列表结尾)
name_list = ['小明', '小王', '小李']
name_list.extend('小高')
print(name_list)# ['小明', '小王', '小李','小‘,’高']
1.1.5 insert()
用于向列表指定位置新增数据。
语法:列表序列.insert(位置下标, 数据)
name_list = ['小明', '小王', '小李']
name_list.insert(1,'小高')
print(name_list)# ['小明', '小高', '小王', '小李']
1.1.6 del()
用于删除列表或列表中指定的数据。
语法: del 目标
name_list = ['小明', '小王', '小李']
del name_list
print(name_list)# 结果:报错提示:name 'name_list' is not defined
name_list = ['小明', '小王', '小李']
del name_list[0]
# 结果:['小王', '小李']
print(name_list)
1.1.7 pop()
用于删除指定下表数据(默认最后一个),返回该数据。
语法:列表序列.pop(下标)
name_list = ['小明', '小王', '小李']
print( name_list.pop(1))# 小王
print(name_list)# 结果:['小明', '小李']
1.1.7 remove()
用于移除列表中某个数据的第一个匹配项。
语法:列表序列.remove(数据)
name_list = ['小明', '小王', '小李']
name_list.rempove('小王')
print(name_list)# 结果:['小明', '小李']
1.1.7 clear()
用于清空列表。
语法:列表序列.clear()
name_list = ['小明', '小王', '小李']
name_list.clear()
print(name_list)# 结果:[]
1.1.8 修改
- 通过指定下表修改
name_list = ['小明', '小王', '小李']
name_list[0]='小高'
print(name_list)# 结果:['小高', '小王', '小李']
- 逆置:reverse()
name_list = ['小明', '小王', '小李']
name_list.reverse()
print(name_list)# 结果:[ '小李','小王','小明']
- 排序 sort()
- 语法:列表序列.sort( key=None, reverse=False)
注意:reverse表示排序规则,reverse = True 降序, reverse = False 升序(默认)。
num_list = [1, 5, 2, 3, 6, 8]
num_list.sort()
# 结果:[1, 2, 3, 5, 6, 8]
print(num_list)
1.1.9 复制
函数:copy()
name_list = ['小明', '小王', '小李']
name_list2[0]=name_list .copy()
print(name_list2)# 结果:['小明', '小王', '小李']
1.2 列表的循环
- while()
name_list = ['小明', '小王', '小李']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
- for
name_list = ['小明', '小王', '小李']
for i in name_list :
print(i)
1.3列表的嵌套
#查找李四
name_list = [['⼩明', '⼩红', '⼩绿'], ['Tom', 'Lily', 'Rose'], ['张三', '李四',
'王五']]
# 第⼀步:按下标查找到李四所在的列表
print(name_list[2])
# 第⼆步:从李四所在的列表里面,再按下标找到数据李四
print(name_list[2][1])
1、元组
列表可以一次性存储多个数据,但是列表中的数据允许更改。一个元组可以存储多个数据,元组内的数据是不能修改的。
元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型
# 多个数据元组
t1 = (10, 20, 30)
# 单个数据元组
t2 = (10,)
注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型。
t2 = (10,)
print(type(t2)) # tuple
t3 = (20)
print(type(t3)) # int
t4 = ('hello')
print(type(t4)) # str
2.1 元组的常见操作
元组数据不支持修改,只支持查找,具体如下:
- 按下标查找数据
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0]) # aa
- index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列列表、字符串的index方法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa')) # 0
- count():统计某个数据在当前元组出现的次数。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb')) # 2
- len():统计元组中数据的个数
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1)) # 4
注意:元组中的数据如果直接修改则报错,但是元组中的列表是可以修改的。