1.列表的定义
列表格式:列表名=[元素1,元素2,...]
例:my_list = [1, 2, 3, True]
空列表的定义:my_list = [] 或 my_list = list()
2.列表的循环遍历
(1)for 循环遍历
my_list = ["a","b","c","d"]
for value in my_list:
print(value)
结果:
a
b
c
d
(2)while 循环遍历
my_list = ["a","b","c","d"]
# 定义变量
index = 0
# 定义变量 记录列表元素个数
l = len(my_list)
while index < l:
# 通过下标索引获取元素
value = my_list[index]
print(value)
结果:
a
b
c
d
3.列表的常见操作
(1)添加元素(append,extend,insert)
1、append 向列表添加元素
my_list = [1, 2]
my_list.append([1, 3, 4])
print(my_list)
# 结果 [1, 2, [1, 3, 4]
my_list = [1, 2]
my_list.extend([1, 3, 4])
print(my_list)
# 结果 [1, 2, 1, 3, 4]
3、insert(index, object) 在指定位置index前插入元素object
my_list = [1, 2]
my_list.insert(1, "ab")
print(my_list)
# 结果 [1, 'ab', 2, 1, 3, 4]
(2)修改元素
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
# 将3改成33
my_list = [1, 3, 5, 7, 9, 1]
my_list[1] = 33
print(my_list)
(3)查找元素(in, not in, index, count)
所谓的查找,就是看看指定的元素是否存在
1、in (存在), 如果存在那么结果为true,否则为false
my_list = [1, 3, 5, 7]
if 3 in my_list:
print("找到了3")
else:
print("没有找到")
2、not in (不存在),如果不存在那么结果为true,否则false
my_list = [1, 3, 5, 7]
if 10 not in my_list:
print("10不存在列表中")
3、index 通过元素的值 获取元素的下标索引
my_list = [1, 3, 5]
ret = my_list.index(3)
print(ret)
4、count 获取元素出现的次数
my_list = [1, 3, 5]
count = my_list.count(1)
print(count)
(4)删除元素(del,pop,remove)
1、del:根据下标进行删除
my_list = [1, 3, 4, 6]
# del 列表名[下标索引]
del my_list[1]
print(my_list)
# 结果[1, 4, 6]
2、pop:删除最后一个元素
my_list = [1, 3, 4, 6]
# 列表名.pop(下标索引)
my_list.pop(1) # 结果[1, 4, 6]
# 列表名.pop()会删除列表中最后一个元素
my_list.pop() # 结果 [1, 3, 4]
3、remove:根据元素的值进行删除
my_list = [1, 3, 4, 6]
# 列表名.remove(元素)
my_list.remove(6)
print(my_list)
# 结果 [1, 3, 4]
4、clear:清空列表中的内容[]
my_list = [1, 3, 4, 6]
my_list.clear()
print(my_list)
# 结果 []
(5)排序(sort,reverse)
# 定义一个列表
my_list = [1, 10, 3, 4, 2, 7]
# sort #升序 sort(reverse=False)等价于sort()
my_list.sort()
print(my_list) # 结果 [1, 2, 3, 4, 7, 10]
# sort(reverse=True)降序
my_list.sort(reverse=True)
print(my_list) # 结果 [10, 7, 4, 3, 2, 1]
#逆置
ret = reversed(my_list)
print(list(ret)) # 结果 [7, 2, 4, 3, 10, 1]
my_list.reverse()
print(my_list) # 结果 [7, 2, 4, 3, 10, 1]
4.列表的嵌套
schoolNames = [['北京大学','清华大学'],['南开大学','天津大学','天津师范大学',["啊哈"]],['山东大学','中国海洋大学']]
# 打印天津大学
name = schoolNames[1][1]
print(name)
# 打印啊哈
ret = schoolNames[1][3][0]
print(ret)
5.列表的嵌套应用
一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
# 导入模块
import random
# 准备办公室
my_list = [[], [], []]
# 准备好8位老师
teacher = "ABCDEFGH"
# 遍历老师 获取每名老师
for name in teacher:
# 获取随机数(为了下标索引)
index = random.randint(0, 2)
# 通过下标索引获取对应的办公室
my_list[index].append(name)
print(my_list)
6.列表推导式
(1)创建一个列表 里面的元素分别为1,2,3,...10
my_list = [i for i in range(1,11)]
print(my_list)
(2)创建一个列表 里面的元素分别是1-10中的偶数
my_list = [i for i in range(1,11) if i % 2 == 0]
print(my_list)
(3)列表中有多个元素 每个元素的类型为元组 有两个元素
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
my_list = [(i,j) for i in range(1,3) for j in range(0,3)]
print(my_list)
(4)实现分组一个 list 里面的元素,比如 [1,2,3],...100]变成 [[1,2,3],[4,5,6]....]
a = [x for x in range(1,101)]
b = [a[x:x+3] for x in range(0,len(a),3)]
print(b)