# 什么是列表
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
# 列表的定义
# 1、直接赋值
name = ["zeno","jackson","小红",18]# 存储不同的数据类型
# 2、创建空列表
n1 = []
n2 = list()
# 3、列表推导式后边讲
# 增
name = ["zeno","jackson","小红"]
a = '123'
# 列表结尾追加数据
name.append(a) # ['zeno', 'jackson', '小红', '123']
# 列表结尾追加数据,如果数据是一个序列,则将这个序列中的数据逐一添加到列表
name.extend(a) # ['zeno', 'jackson', '小红', '1', '2', '3']
# 指定位置新增数据
name.insert(1,a) # ['zeno', '123', 'jackson', '小红']
# 删
name = ["zeno","jackson","小红"]
del name # 千万千万慎用 详情看我的另一篇文章
print(name) # NameError: name 'name' is not defined
del name[0]
print(name) # ['jackson', '小红']
# 删除指定下标的数据(默认为最后一个)
name.pop()
print(name) # ['zeno', 'jackson']
name.pop(0)
print(name) # ['jackson', '小红']
name.remove("jackson")
print(name) # ['zeno', '小红']
name.clear()
print(name) # []
另一篇文章
# 改
name = ["zeno","jackson","小红"]
name[0] = "zeno1"
print(name)
name = [1,4,2,5]
# 从小到大排序
name.sort()
print(name) #[1, 2, 4, 5]
# 从大到小排序 先排序,逆置
name.sort(reverse=True)
print(name) # [5, 4, 2, 1]
# 字符串翻转 原字符串为[1,4,2,5] 不排序直接翻转
name.reverse()
print(name) # [5, 2, 4, 1]
yui = [1,2,3]
yui[1] = 3
print(yui)
# 查
schoolNames = [['北京大学','清华大学'],
['南开大学','天津大学','天津师范大学'],
['山东大学','中国海洋大学']]
print(schoolNames[0][1])
name = ["zeno","jackson",18,"小红",18]
print(name.index(18)) # index() 只会输出第一个18的位置
print(name.index("18")) #列表里没有"18",报错
# print(name.count("zeno"))# count()
# 用户输入一个数据,如果这个名字不在这个列表中,不存在,在这个列表中,这个名字已存在
user = input("请输入你的名字:")
if user in name:
print("这个名字已存在")
else:
print("不存在")
# 列表推导式
# for
li = []
for i in range(5):
li.append(i)
print(li)
# [表达式 for 变量 in 列表]
print([i for i in range(5)])
# 把0-5之间的奇数添加到列表中去 i%2==0 偶数 i%2!=0 奇数
print([i for i in range(5) if i%2!=0])
#列表推导式写出 1-100
print([i for i in range(1,101)])
# 也能实现翻转
print([li[i] for i in range(len(li)-1,0-1,-1)])
# 列表的应用
# 一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分
"""
1.数据 办公室 8位老师的名字
2.分配老师到办公室 -- 随机
3.验证分配成功 打印每个办公室的人数和对应的老师的名字
"""
import random
# 办公室
offs = [[],[],[]]
# 8位老师
teacher = ['a','b','c','d','e','f','g','h']
# 分配老师到办公室
for i in teacher:
# 把老师添加到办公室中
index = random.randint(0,2)
# append extend insert
offs[index].append(i)
print(offs)
# 验证分配成功
for i in offs:
# 打印每个办公室的人数
print(f"每个办公室的人数为{len(i)}")
# 打印老师的名字
for j in i:
print(f"名字是:{j}")