一、本章总结
1、序列结构主要有列表、元组、集合、字典和字符串
2、正向递增索引取值范围[0,N-1],反向递减索引取值范围[-1,-N]
3、切片的语法结果:序列名[start:end:step]
4、创建列表的方式:1)使用[]直接创建 2)使用内置函数list()创建
5、列表的相关操作方法:1)添加方法:insert()、append()
2)删除方法:pop()、remove()、clear()
3)列表元素的排序:sort()和内置函数sorted()
4) 其他方法:reverse()、copy()
6、元组的创建方式:1)直接使用()创建 2)使用内置函数tuple()创建
7、字典的创建方式:1)直接使用{}创建 2)使用内置函数dict()创建
8、字典的相关操作方法:1)查询方法:get()、keys()、values()和items()
2)删除方法:pop()、popitem()、clear()
9、集合的创建方式:1)直接使用{}创建 2)使用内置函数set()创建
10、集合的相关操作方法:1)添加方法:add() 2)删除方法:remove()和clear()
11、列表、字典、集合都是Python中的可变数据类型,元组是Python中的不可变数据类型
12、列表、元组、字典和集合的遍历都可以通过for循环实现
13、列表、元组、字典和集合的删除都可以使用语句 del 来实现
二、本章练习
1、下面代码的输出结果是:( A )
A.5
B.6
C.4
D.以上都不对
2.以下数据类型是不可变序列的是:( B )
A.列表
B.元组
C.字典
D.集合
3.下面代码的输出结果是:( C )
A.120
B.40
C.200
D.20
4.以下创建字典的方式错误的是:( D )
A.d={1:[20,30],3:[30,40]}
B.d={(10,20):1,(30,40):4}
C.d={‘张三’:30,’李四’:50}
D.d={[10,20]:’张三’,[30,40]:’李四’}
5.下面代码的输出结果是:( B )
A.[2008,2022,2035,’2025’,2025]
B.[2008,2022,2035,[‘2025’,2025]]
C.[2008,2022,2025,2035,’2025’]
D.[2008,2022,2025,2035,[‘2025’]]
6.下面代码的输出结果是:( D )
A.想念家人
B.想想念念家家人人
C.想念家人想念家人
D.[‘想家’,’想人’,’念家’,’念人’]
7.下面代码的输出结果是:( C)
A.[1,3,5,7,2,20]
B.[1,3,5,2,20,7]
C.[1,3,20,5,7]
D.[1,3,2,20,5,7]
8.下面代码的输出结果是:( C )
A.[9,7,5,3,1]
B.[1,3,5,7,9]
C.None
D.[1,3,5,7,9,]
9.下面代码的输出结果是:( A )
A.<class ‘int’>
B.<class ‘tuple’>
C.<class ‘list’>
D.<class ‘set’>
10.A和B是两个集合,对于A&B的描述正确的是( A )
A.A和B是交集运算,包含同时在集合A和集合B中的元素
B.A和B是并集运算,包含在集合A和集合B中的所有元素
C.A和B是差集运算,包含在集合A但不包含在集合B中的元素
D.A和B是补集运算,包含集合A和集合B中非共同的元素
11.已知一个列表中存储的是员工的出生年份[88,89,90,98,00,99],由于时间比较久,出生的年份均为2位整数,现需要2位年份前加19,如果年份是00,将需要加上200。
lst=[88,89,90,98,00,99] #表示员工的两位整数出生年份
# for index in range(len(lst)):
# if str(lst[index])!='0':
# lst[index]='19'+str(lst[index])
# else:
# lst[index]='200'+str(lst[index])
# print(lst)
for index,value in enumerate(lst):
if str(value)!='0':
lst[index]='19'+str(value)
else:
lst[index]='200'+str(value)
print(lst)
12.模拟京东购物:从键盘录入5个商品信息(1001 手机)添加到商品列表中,展示商品信息,提示用户选择商品,用户选中的商品添加到购物车中(购物车中的商品要逆序),用户选中的商品不存在需要有相应提示,当用户输入“q”时循环结束,显示购物车中的商品。
# 创建一个空列表,用于存储入库的商品信息
lst=[]
# 从键盘录入5个商品信息(1001 手机)添加到商品列表中,展示商品信息
for i in range(0,5):
goods=input('请输入商品的编号和商品的名称进行商品入库,每次只能输入一件商品:')
lst.append(goods)
# 输出所有的商品信息
for item in lst:
print(item)
# 创建一个空列表,用于存储购物车中的商品
cart=[]
while True:
flag=False # 代表没有商品的情况
num=input('请输入要购买的商品编号')
# 遍历商品列表,查询要购买的商品是否存在
for item in lst:
if num==item[0:4]: # 切片操作,从商品中切出序号
flag=True # 代表商品已经找到
cart.append(item) # 添加到购物车
print('商品已成功添加到购物车')
break # 退出的是for循环
if not flag and num!='q':
print('商品不存在')
if num=='q':
break # 退出的才是while循环
print('-'*50)
print('您购物车里已选择的商品为:')
cart.reverse()
for item in cart:
print(item)
13.模拟12306火车订票流程:假设北京到天津有以下4个车次可供选择,用户选择所要购买的车次,进行购票进站。
# 创建字典用于存储车票信息,使用车次作key,使用其它信息作value
dict_ticket={
'G1234':['北京南-天津南','18:06','19:39','00:33'],
'G1533':['北京南-天津南','18:15','19:49','00:34'],
'G8917':['北京南-天津西','18:20','18:19','00:59'],
'G203':['北京南-天津南','18:35','19:09','00:34']
}
print('车次 出发站-到达站 出发实际 到达时间 历时时长')
# 遍历字典中的元素
for key in dict_ticket.keys():
print(key,end='')
# 根据key获取出来的值是一个列表
for item in dict_ticket.get(key):
print(item,end='\t\t')
# 换行
print()
# 输入用户的购票车次
train_no=input('请输入要购买的车次:')
# 根据key获取值
info=dict_ticket.get(train_no,'车次不存在') # info是一个列表类型
if info!='车次不存在':
person=input('请输入乘车人,如果是多位乘车人使用逗号分隔:')
# 获取车次的出发站-到达站,还有出发时间
s=info[0]+info[1]+'开'
print('您已经购买了'+train_no+'次列车'+s+',请'+person+'尽快换取纸质车票。【铁路客服】')
else:
print('对不起,选择的车次可能不存在')
14.模拟手机通迅录: 从键盘录入5位好友的姓名和电话,由于通讯录是无序的所以可以使用集合来实现。
# 创建一个空集合
s=set()
# 录入5位好友的姓名和手机号
for i in range(1,6):
info=input(f'请输入第{i}位好友的姓名和手机号:')
s.add(info)
# 遍历集合
for item in s:
print(item)