python列表

一、查找

1.1 index():返回指定数据所在位置的下标

name_list = ['Tom', 'Lily', 'Rose']

print(name_list.index('Tom'))   # 0
# print(name_list.index('Toms'))    # 报错

1.2 count():统计指定数据在当前列表中出现的次数

name_list = ['Tom', 'Lily', 'Rose']

print(name_list.count('Lily'))  # 1
print(name_list.count('Lilys'))  # 0

1.3 len():访问列表中数据的个数

name_list = ['Tom', 'Lily', 'Rose']

print(len(name_list))   # 3

二、判断是否存在

2.1 in:判断指定数据在某个列表序列,如果在返回True,不在返回False

name_list = ['Tom', 'Lily', 'Rose']

print('Tom' in name_list)   # True
print('Toms' in name_list)   # False

2.2 not in:不在返回True,在返回False

name_list = ['Tom', 'Lily', 'Rose']

print('Tom' not in name_list)   # False
print('Toms' not in name_list)   # True

三、增加数据

3.1 append():列表结尾追加数据,如果追加的数据是一个序列,则追加整个序列到列表

name_list = ['Tom', 'Lily', 'Rose']

name_list.append('xiaoming')
print(name_list)    # ['Tom', 'Lily', 'Rose', 'xiaoming']
name_list.append(['zhangsan', 'lisi'])
print(name_list)    # ['Tom', 'Lily', 'Rose', 'xiaoming', ['zhangsan', 'lisi']]

3.2 extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表

name_list = ['Tom', 'Lily', 'Rose']

name_list.extend('xiaoming')
print(name_list)    # ['Tom', 'Lily', 'Rose', 'x', 'i', 'a', 'o', 'm', 'i', 'n', 'g']
name_list.extend(['zhangsan', 'lisi'])
print(name_list)    # ['Tom', 'Lily', 'Rose', 'zhangsan', 'lisi']

3.3 insert():指定位置新增数据,插入

name_list = ['Tom', 'Lily', 'Rose']

name_list.insert(1, 'xiaoming')
print(name_list)    # ['Tom', 'xiaoming', 'Lily', 'Rose']
name_list.insert(1, ['xiaoming', 'zhangsan', 11, 22])
print(name_list)    # ['Tom', ['xiaoming', 'zhangsan', 11, 22], 'xiaoming', 'Lily', 'Rose']

四、列表删除数据

4.1 del():

name_list = ['Tom', 'Lily', 'Rose']

# del 可以删除指定下标的数据
del name_list[0]
print(name_list)    # ['Lily', 'Rose']

# del name_list
# del(name_list)
# print(name_list)    # NameError: name 'name_list' is not defined

4.2 pop():

name_list = ['Tom', 'Lily', 'Rose']

# pop() -- 删除指定小标的数据,如果不指定下标,默认删除最后一个数据,
# 无论是按照下标还是删除最后一个,pop函数都会返回这个被删除的数据

# del_name = name_list.pop()
# print(del_name)     # Rose
# print(name_list)    # ['Tom', 'Lily']

del_name = name_list.pop(1)
print(del_name)     # Lily
print(name_list)    # ['Tom', 'Rose']

4.3 remove():

name_list = ['Tom', 'Lily', 'Rose']

# remove()
name_list.remove('Rose')
print(name_list)    # ['Tom', 'Lily']

4.4 clear(): 清空列表

name_list = ['Tom', 'Lily', 'Rose']

# clear() 清空列表
name_list.clear()
print(name_list)    # []空列表

五、修改列表

5.1 reverse() 逆置

list1 = [1, 2, 3, 4, 5, 8, 6, 9, 7]
list1.reverse()
print(list1)  # [7, 9, 6, 8, 5, 4, 3, 2, 1]

5.2 sort():排序,升序(默认)或降序

list1 = [1, 2, 3, 4, 5, 8, 6, 9, 7]
# list1.sort()
# print(list1)    # [1, 2, 3, 4, 5, 6, 7, 8, 9] 升序
list1.sort(reverse=True)
print(list1)        # [9, 8, 7, 6, 5, 4, 3, 2, 1] 降序

六、列表复制

  • copy()复制
name_list = ['Tom', 'Lily', 'Rose']

list1 = name_list.copy()

print(list1)    # ['Tom', 'Lily', 'Rose']
print(name_list)    # ['Tom', 'Lily', 'Rose']

七、列表的循环遍历

7.1 while

name_list = ['Tom', 'Lily', 'Rose']

i = 0
while i < len(name_list):
	print(name_list[i])
	i += 1

7.2 for

name_list = ['Tom', 'Lily', 'Rose']

for i in name_list:
	print(i)

综合应用:随机分配办公室

"""
需求:8位老师,3个办公室,将8为老师随机分配到3个办公室
步骤:
	1、准备数据
		1.1 8位老师 --- 列表
		1.2 3个办公室 --- 列表嵌套
	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)

# print(offices)

# 为了更贴合生活,把每个办公室子列表加一个办公室编号1,2,3
i = 1
# 3. 验证是否分配成功
for office in offices:
	# 打印办公室人数 -- 子列表数据的个数 len()
	print(f'办公室{i}的人数是{len(office)}, 老师分别是:')
	# 打印老师的名字
	# print() == 每个子列表里面的名字个数不一定 -- 遍历 -- 子列表
	for name in office:
		print(name)

	i += 1

原文地址:https://www.cnblogs.com/qian-yuan/p/14603254.html