目录
一、判断题
- Python字典和集合都是无序的容器。 T
- 运算符“-”可以用于集合的差集运算 T
- Python中的列表是不可变的 F
- Python中的元组是不可变的。 T
- 一个列表可以是另一个列表的元素 T
- 字典的元素可以通过键来访问,也可以通过位置来访问。 F
- Python字典中的“键”不允许重复。 T
- 列表的元素可以是任何类型的对象。 T
- 字典直接打印出来的顺序与创建之初的顺序可能不同。 T
- 所有的序列都是有顺序的。 T
二、选择题
ls = [3.5, "Python", [10, "PYTHON"], 3.6]
,哪个选项是ls[2][-1][1]
的运行结果? A.Y B.T C.P D.N- 以下选项不属于组合数据类型的是: A.浮点数类型B.序列类型C.字典类型D.集合类型
- 如果
list1 = [11, 12, 13, 14, 15, 4, 3, 2, 1]
,那么以下那个是list1[:-1]
计算的结果?A.[0,11, 12, 13, 14, 15, 4, 3, 2,1]
B.[11, 12, 13, 14, 15, 4, 3, 2]
C.[11, 12, 13, 14, 15, 4, 3, 2,1]
D.[0,11, 12, 13, 14, 15, 4, 3, 2,1,0]
- 要把5加到列表lst的末尾,可以使用_lst.append(5) 。
- 下列哪些类型的数据可以作为字典中元素的“键”( )。 A.列表 B.整数 C.集合 D.字典 NumbersTuplesStrings
- 以下对列表a = ['a', 'b', 'c', 'd', 'e']操作不正确的是: A.a[len(a)-1] B.a[-1] C.a[-5] D.a[5]
- 下述代码所实现的功能是:( )scores = ['小明',99.5, 100, 97.5, 100, 100, 99.5] sum = sum(scores[1:]) print(sum) A.输出列表中编号为1的元素 B.输出列表中第一位数字和最后一位数字的和 C.截取列表中元素 [99.5, 100, 97.5, 100, 100, 99.5]并进行累加之后得到总和,最后输出总和 D.从列表中随便输出一位元素
- 以下不能创建一个字典的语句是: A.dict1 = {} B.dict2 = { 3 : 5 } C.dict3 = {[1,2,3]: “uestc”} D.dict4 = {(1,2,3): “uestc”}
- 关于组合数据类型的描述,正确的选项是: A.Python中最常用的映射类型的典型代表是字典类型 B.列表类型里的元素要求是同一种数据类型 C.元组采用大括号{ }方式表示 D.序列类型的元素可以用reverse()方法交换相邻元素的位置
- Python中,以下关于集合的描述错误的是: A.无法删除集合中指定位置的元素,只能删除特定值的元素。 B.Python集合中的元素不允许重复。 C.Python集合是无序的。 D.Python集合可以包含相同的元素。
三、编程题
7-1 统计工龄
给定公司多名员工的工龄,按输入工龄顺序输出每个工龄段有多少员工。
- 输入格式:给出多个整数,即每个员工的工龄,范围在[0, 50]。
- 输出格式:按输入工龄顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。
- 输入输出样例:
10 2 0 5 7 2 5 2
10:1
2:3
0:1
5:2
7:1
items = dict()
data = list(map(int, input().split()))
for i in data:
if not items.__contains__(i):
items[i] = 1
else:
items[i]+=1
for k,v in items.items():
print(f"{k}:{v}")
7-2 分析活动投票情况
利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员
输入格式:在一行中输入得票的队员的序列号,用逗号隔开。
输出格式:一行中输出第二小队没有得票的队员序号。
输入输出样例:
1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9
6 8
s=set(map(int,input().split(",")))
flag=1
for i in range(6,11):
if i not in s:
if flag==1:
print(i,end="")
flag=0
else:
print(" %d"%i,end="")
7-3 计算每个学生的平均成绩
输入所有学生的姓名和成绩,以#
结束。输出每个学生的平均成绩表。
输入格式:每一行输入一个学生的姓名和成绩,以空格分隔。输入完成后以#
结束
输出格式:每行显示一个学生的姓名和平均成绩,姓名占8位宽度,平均成绩保留两位小数点。姓名和平均成绩之间用空格隔开。
输入输出样例1:
Maria 20
David 10
Bob 15
David 20
#
姓 名 平均成绩
Maria 20.00
David 15.00
Bob 15.00
输入输出样例2:
韩思 80
杨世忆 70
徐晓畅 100
黄嘉 95
刘天宇 60
叶鸿 80
韩思 85
杨世忆 65
徐晓畅 100
黄嘉 90
刘天宇 80
刘天宇 90
徐晓畅 100
徐晓畅 100
徐晓畅 100
#
姓 名 平均成绩
韩思 82.50
杨世忆 67.50
徐晓畅 100.00
黄嘉 92.50
刘天宇 76.67
叶鸿 80.00
# 用于记录数据
items = dict()
# 接收数组存入列表
while 1:
string = input()
if string == '#':
break
else:
name = string.split()[0]
score = float(string.split()[1])
if items.__contains__(name):
items[name][0] += score
items[name][1] += 1
else:
items[name] = [score, 1]
# 计算所有人成绩的平均数
print("姓 名 平均成绩")
for k in items.keys():
items[k][0] /= items[k][1]
print(f"{k}".ljust(8), f"{float(items[k][0]):.2f}".rjust(4))