列表
格式:【数据1,2,3,4,5,…】
列表可存多个数据,且数据类型可以不同,通常数据类型应该一致,为了后期方便控制
常用操作
查找
1、通过下标
同C语言中的数组
name_list = ['lili', 'tom', 'rose']
print(name_list)
print(name_list[2])
注意:直接打印列表名的话,是读取整个列表,并不是C语言中的列表名==列表名[0]
2、通过函数
index() count() len()
len():公共方法,无论是字符串、元组、列表都可以用的方法,且效果一样
判断指定数据存在
in not in
in:判断某个指定的数据在某个列表中,在的话返回true,不在返回false
not in 反之
name_list = ['lili', 'tom', 'rose']
print('tom' in name_list)
print('tom' not in name_list)
判断案例
name_list = ['lili', 'tom', 'rose']
# 需求:注册邮箱,用户输入用户名,判断是否重复,如果存在
# 提示用户,否则通过
username = input('请输入您的用户名:')
if username in name_list:
print(f'该用户名已存在')
else:
print(f'通过')
增加
append():将指定数据加入列表的末尾
列表序列.append()
extend():同上
insert():指定位置插入
列表是可变序列,如果追加一个序列,追加的是整个序列到列表里面
extend():如果追加的是序列,他会把序列拆开,逐一追加到列表里面
insert():要先指定位置下标
name_list = ['lili', 'tom', 'rose']
name_list.append('xiaoming')
name_list.append([11, 22])
print(name_list)
# 列表的数据是可改的,列表是可变数据
# append函数,追加数据的时候,如果数据是序列,追加整个序列到列表结尾
name_list.extend('xiaoming')
print(name_list)
# 如果追加的数据是一个序列,extend会把列表拆开,逐一追加
name_list.insert(3, 'shibimani')
print(name_list)
删除
del()、pop()、remove()、clear()
del:能删列表,也可以删除指定下标的数据
name_list = ['lili', 'tom', 'rose']
# del
# del(name_list[0])
# print(name_list)
#
# # pop 删除指定下标的数据,如果不指定下标,默认删除最后一个数据
# # 无论是按下标还是最后一个元素,它都会返回这个被删除的数据
# del_name = name_list.pop()
# print(del_name)
#
# del_name = name_list.pop(0)
# print(name_list)
# remove
# name_list.remove('tom')
# print(name_list)
# 默认匹配第一个
# clear
name_list.clear()
print(name_list)
修改
1、修改指定下标的数据
2、逆置reverse()
3、排序 sort()
注意:reverse没有返回值,不能用print直接打印
先reverse之后,原来的序列就逆制了,再打印
name_list = ['lili', 'tom', 'rose']
# 修改就是把指定下标赋值成新的数据
name_list[1] = 'zhangsan'
print(name_list)
# 逆序
list1 = [1, 2, 4, 5, 6]
name_list.reverse()
list1.reverse()
print(list1)
print(name_list)
# sort() 默认是升序 reverse = false
# sort() 如果是reverse=True是降序
list1.sort(reverse=False) # 这就是默认为升序
print(list1)
list1.sort(reverse=True)
print(list1)
复制
copy()无参数
通常工作中对数据进行操作时,都是先复制一份出来对其操作,保留原数据的准确性
列表的循环遍历
按序依次访问列表中的数据
while
name_list = ['lili', 'tom', 'rose']
i = 0
while i < len(name_list):
print(name_list[i])
i += 1
for
for i in name_list:
print(i)
列表嵌套
类似于c中的二维数组
# 列表嵌套时的查询数据
# 三个办公室,八个老师,随机分进办公室
"""
1、准备八个老师(列表)、三个办公室(列表)的数据
2、分配进办公室:把老师的名字写入办公室列表
即办公室列表中追加老师名字
3、验证是否分配成功
打印办公室的信息:人数和老师名
"""
import random
# 1.准备数据
teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
offices = [[], [], []]
# 2.分配老师到办公室--遍历老师列表数据
for name in teachers:
# 列表追加数据 -- append(整体追加),extend, insert
num = random.randint(0, 2)
offices[num].append(name)
# 3.验证是否成功
# 为了贴合生活,把各个办公室字列表加办公室编号123
i = 1
for office in offices:
print(f'办公室{i}的人数是{len(office)},老师分别是:')
for name in office:
print(name)
i += 1
元组
应用场景
列表中的数据是可以修改的,而元组是不能修改的
列表list:【】 元组tuple:( )
定义元组
单数据元组一定要加逗号,不然就成了这个数据自己的类型
a = (10, 20, 30) # 多数据元组
print(type(a))
a1 = (10,) # 单数据元组
print(type(a1))
a2 = (10) # int
print(type(a2))
------------------------------------------------
<class 'tuple'>
<class 'tuple'>
<class 'int'>
常见操作
就是查找的相关操作:
1、按下标
2、查找某个数据index()
3、count统计出现次数
4、len()
元组数据的修改
如果元组中有列表,列表里的数据是可以被修改的