列表
数据类型:数值、字符串、布尔
数据容器:列表、字典、元组、集合
字符串是不可变类型、列表是可变类型。
1、列表格式
my_list = [data1, data2, data3, data4]
2、列表操作
列表的作用是存储多个数据,可以对其进行增、删、改、查。
2.1 查找
2.1.1 下标查找
name_list = ['Tom', 'Rose', 'jack']
name_list[1] -> Rose
常用的还有函数查找,和字符串函数查找差不多
2.1.2 index函数
语法:列表.index(查询数据,开始位置,结束位置)
name_list = ['Tom', 'Rose', 'jack']
name_list.index('Rose')->1
2.1.3 count函数
语法:列表.count(查询数据,开始位置,结束位置)
name_list = ['Tom', 'Rose', 'jack']
name_list.count('Rose')->1
2.1.4 len函数
语法:len(列表) ->统计列表中数据个数
name_list = ['Tom', 'Rose', 'jack']
len(name_list) -> 3
2.1.5 判断是否存在 in/not in
语法:in/not in
name_list = ['Tom', 'Rose', 'jack']
res = 'Rose' in name_list
print(res) -> True
## 需求:判断邮箱是否存在
Emile = input('请输入你的邮箱:')
if Emile in emile_list:
print('该邮箱已注册')
else:
print('注册成功')
2.2 增加
2.2.1 append函数
语法:列表.append(数据)
name_list = ['Tom', 'Rose', 'jack']
name_list.append('Sup') ->['Tom', 'Rose', 'jack', 'Sup']
name_list.append([1, 2]) ->['Tom', 'Rose', 'jack', 'Sup', [1, 2]]
2.2.2 extend函数
语法:列表.extend(数据)
name_list = ['Tom', 'Rose', 'jack']
name_list.extend('Sup') ->['Tom', 'Rose', 'jack', 'Sup']
name_list.extend([1, 2]) ->['Tom', 'Rose', 'jack', 'Sup', 1, 2]
append和extend不同之处在于,extend展开,然后逐一添加,返回一维数据,append直接添加。
2.2.3 insert函数
语法:列表.insert(位置,数据)
name_list = ['Tom', 'Rose', 'jack']
name_list.append('duole')
add_list = ['SuperLeo', 'vivi']
name_list.extend(add_list)
name_list.insert(name_list.index('SuperLeo')+1, 'duo')
print(name_list)
2.3 删除
直接删列表或者指定下标
2.3.1 del
name_list = ['Tom', 'Rose', 'jack']
## 直接删列表
del name_list
## 删除指定下标
del name_list[0]
2.3.2 pop
pop删除指定下标数据,如果不指定就删除最后一个,有返回值
name_list = ['Tom', 'Rose', 'jack']
del_name = name_list.pop()
print(del_name) ->['jack']
print(name_list) ->['Tom', 'Rose']
2.3.3 remove
remove指定删除数据
name_list = ['Tom', 'Rose', 'jack']
name_list.remove('Rose')
print(name_list) ->['Tom', 'jack']
2.3.4 clear
clear删除全部数据,返回空列表
name_list = ['Tom', 'Rose', 'jack']
name_list.clear()
print(name_list) ->[]
2.4 修改
2.4.1 修改指定下标:
name_list = ['Tom', 'Rose', 'jack']
name_list[0] = 'timi'
print(name_list) ->['timi', 'Rose', 'jack']
2.4.2 逆置:reverse
name_list = ['Tom', 'Rose', 'jack']
name_list.reverse()
print(name_list) ->['jack', 'Rose', 'Tom']
2.4.3 排序:sort
name_list = ['Tom', 'Rose', 'jack']
name_list.sort(reverse=True) ->降序
print(name_list) ->['jack', 'Rose', 'Tom']
2.5 复制
copy属于浅复制,修改复制的表的数据不会对原来的表产生影响;
2.5.1 copy
name_list = ['Tom', 'Rose', 'jack']
name_list_2 = name_list.copy()
print(name_list_2) ->['Tom', 'Rose', 'jack']
3、列表循环
3.1 while循环
name_list = ['Tom', 'Rose', 'jack']
i = 0
while i < len(name_list):
print(name_list[0])
i += 1
3.2 for循环
name_list = ['Tom', 'Rose', 'jack']
for j in name_list:
print(j)
4、列表嵌套
多维列表
name_list = [['Tom', 'Rose', 'Jack'], ['duole', 'vivi', 'SuperLeo'], ['red', 'black', 'blue']]
name = name_list[2][1]
print(name)
5、元组
5.1 元组应用场景
元组存储多个数据,数据不能修改。如身份证号的存储
5.2 元组定义
t1 = (10, 20, 30)
t2 = (10, ) ##注意,不然数据类型会变
t3 = (20)
print(type(t3)) -> int
print(type(t2)) -> tuple
5.3 元组查询
与list相同
5.3.1 下标
t1 = (10, 20, 30)
t1[2] ->= 30
5.3.2 index()
t1 = (10, 20, 30)
t1.index(10) ->= 0
5.3.3 count()
t1 = (10, 20, 30)
t1.index(10) ->= 1
5.3.4 len()
t1 = (10, 20, 30)
len(t1) ->=3
5.4 元组修改
拿出来的是list,list可以修改,但是要注意数据需不需要改;
t1 = (10, [0, 1, 2, 3], 30)
t1[1][1] = 100
t1 ->(10, [0, 100, 2, 3], 30)
6、总结
字符串、列表、元组操作都很相似,都支持切片。
字符串:查、改、判断
列表:增、删、改、查、循环、嵌套
元组:查