Python应用练习题(第三期)——基本数据类型
1.集合的属性、方法与运算描述将用户输入用空格分隔的一系列地名创建集合MySet,输入一个正整数 n,你将被要求读入 n 个输入(输入形式如下所示),每得到一个输入后,根据输入进行操作。add name:# 在集合中加入元素nameprint:# 将集合转为列表,按元素升序排序后输出列表del name:# 删除集合中的元素name,当name不存在时,不能引发错误update name:
1.集合的属性、方法与运算
- 描述
将用户输入用空格分隔的一系列地名创建集合MySet,输入一个正整数 n,你将被要求读入 n 个输入(输入形式如下所示),每得到一个输入后,根据输入进行操作。
add name: # 在集合中加入元素name
print: # 将集合转为列表,按元素升序排序后输出列表
del name: # 删除集合中的元素name,当name不存在时,不能引发错误
update name: # name为空格逗号分隔的字符串,将其转为集合,并用name中的元素修改集合MySet
clear: # 清空集合
- 输入
第一行输入一个正整数 n
第二行输入用空格分隔的字符串切分为一系列地名
随后的 n 行,每行输入一个如示例格式的命令,命令与参数间空格分隔 - 输出
每遇到“print”时,将集合转为列表,按元素升序排序后输出列表
演示 | 输入 | 输出 |
---|---|---|
示例1 | 8 湖北 湖南 吉林 del 湖北 clear add 江西 add 河北 update 北京 上海 天津 重庆 | [‘吉林’, ‘湖北’, ‘湖南’] [‘吉林’, ‘湖南’] [‘上海’, ‘北京’, ‘天津’, ‘江西’, ‘河北’, ‘重庆’] |
- 代码参考
n = int(input()) # 输入一个正整数 n
name = input() # 吉林,湖北,湖南
MySet = set(name.split())
MyList = name.split()
for i in range(n):
ls = input().split() # 输入命令及参数,之间用空格分隔
if ls[0] == 'print': # 如要输入的命令是“print”,输出字典
print(sorted(list(MySet)))
elif ls[0] == 'update': # 如要输入的命令是“update”,更新ls[1]表示的键对应的值
MySet.update(set(ls[1:]))
elif ls[0] == 'add': # 如要输入的命令是“add”,增加一个键值对,题目确保输入的键在字典中不存在
MySet.add(ls[1])
elif ls[0] == 'del': # 如要输入的命令是“del”,删除字典中指定的键值对,键不存在时返回“键不存在”
MySet.discard(ls[1])
elif ls[0] == 'clear': # 如要输入的命令是“clear”,清空字典中全部元素
MySet.clear()
2.字典的属性、方法与应用
- 描述
将用户输入用逗号分隔的一系列人名做为键,用户输入的逗号分隔的手机号做为值,创建字典MyDict,输入一个正整数 n,你将被要求读入 n 个输入(输入形式如下所示),每得到一个输入后,根据输入进行操作。
add name number: # 在字典中加入以name为键、以number为值的元素
print: # 输出字典
del name: # 删除字典中以name为键的元素,当name不存在时,输出'键不存在'
update name number: # 更新字典中以name为键的元素的值为number
value: # 以列表形式输出字典中的所有值
key: # 以列表形式输出字典中所有键
clear: # 清空字典
-
输入
第一行输入一个正整数 n
第二行输入用逗号分隔的多个人名
第三行输入的逗号分隔的、与第二行相同数量的手机号
随后的 n 行,每行输入一个如示例格式的命令,命令与参数间空格分隔 -
输出
每遇到“print”时,在新的一行输出字典
演示 | 输入 | 输出 |
---|---|---|
示例1 | 8 Tom,Jack,Lee 13988776655,13855664488,13644668888 key value clear add ethan 17700001111 add Tom 13988776655 update Tom 13000112222 | [‘Tom’, ‘Jack’, ‘Lee’] [‘13988776655’, ‘13855664488’, ‘13644668888’] {‘Tom’: ‘13988776655’, ‘Jack’: ‘13855664488’, ‘Lee’: ‘13644668888’} {‘ethan’: ‘17700001111’, ‘Tom’: ‘13000112222’} |
- 代码参考
n = int(input()) # 输入一个正整数 n
name = input().split(',') # Tom,Jack,Lee
phoneNumber = input().split(',') # 13988776655,13855664488,13644668888
MyDict = dict(zip(name,phoneNumber))
for i in range(n):
ls = input().split() # 输入命令及参数,之间用空格分隔
if ls[0] == 'print': # 如要输入的命令是“print”,输出字典
print(MyDict)
elif ls[0] == 'key': # 如要输入的命令是“key”,输出字典中全部键
print(list(MyDict.keys()))
elif ls[0] == 'value': # 如要输入的命令是“value”,输出字典中全部值
print(list(MyDict.values()))
elif ls[0] == 'update': # 如要输入的命令是“update”,更新ls[1]表示的键对应的值
MyDict[ls[1]] = ls[2]
elif ls[0] == 'add': # 如要输入的命令是“add”,增加一个键值对,题目确保输入的键在字典中不存在
MyDict[ls[1]] = ls[2]
elif ls[0] == 'del': # 如要输入的命令是“del”,删除字典中指定的键值对,键不存在时返回“键不存在”
if ls[1] not in MyDict:
print('键不存在')
else:
#MyDict.pop(ls[1])
del MyDict[ls[1]]
elif ls[0] == 'clear': # 如要输入的命令是“clear”,清空字典中全部元素
MyDict.clear()
3.列表去重
- 描述
输入一系列以逗号分隔的英文人名,其中包含重复的名字,请将其中重复的名字去掉,输出包含不重复人名的列表,名字出现顺序与输入顺序相同。 - 输入
一系列以逗号分隔的英文人名 - 输出
包含不重复人名的列表,名字出现顺序与输入顺序相同
演示 | 输入 | 输出 |
---|---|---|
示例1 | Calvin,bob,ada,McCord,Smith,Babbs,Calvin,Smith | [‘Calvin’, ‘bob’, ‘ada’, ‘McCord’, ‘Smith’, ‘Babbs’] |
- 代码参考
x = input()
my_dict = x.split(',')
s = []
for i in my_dict:
if i not in s:
s.append(i)
print(s)
4.排序输出字典中数据
-
描述
有两个字典数据如下:
dic1 = {‘Tom’:21,‘Bob’:18,‘Jack’:23,‘Ana’:20}
dic2 = {‘李雷’:21,‘韩梅梅’:18,‘小明’:23,‘小红’:20}
请将dic1 按键的大小升序排序,将dic2按值的大小升序排序,输出dic1的前n个键的内容,输出dic2前n个键值对。当n大于元素个数时,按实际元素数量输出。 -
输入
输入一个正整数n -
输出
输出指定个数的排序后的元素
演示 | 输入 | 输出 |
---|---|---|
示例1 | 2 | [‘Ana’, ‘Bob’] [(‘韩梅梅’, 18), (‘小红’, 20)] |
- 代码参考
dic1 = {'Tom':21,'Bob':18,'Jack':23,'Ana':20}
dic2 = {'李雷':21,'韩梅梅':18,'小明':23,'小红':20}
n = int(input())
if n > len(dic1):
n = len(dic1)
print(sorted(dic1.keys())[:n])
print(sorted(dic2.items(),key = lambda item:item[1])[:n])
5.查询省会
-
描述
总理有诗云:两湖两广两河山,五江云贵福吉安,四西二宁青甘陕,还有内台北上天。中国各省、直辖市、自治区和特别行政区的字典数据如下:
capitals = {‘湖南’:‘长沙’,‘湖北’:‘武汉’,‘广东’:‘广州’,‘广西’:‘南宁’,‘河北’:‘石家庄’,‘河南’:‘郑州’,‘山东’:‘济南’,‘山西’:‘太原’,‘江苏’:‘南京’,‘浙江’:‘杭州’,‘江西’:‘南昌’,‘黑龙江’:‘哈尔滨’,‘新疆’:‘乌鲁木齐’,‘云南’:‘昆明’,‘贵州’:‘贵阳’,‘福建’:‘福州’,‘吉林’:‘长春’,‘安徽’:‘合肥’,‘四川’:‘成都’,‘西藏’:‘拉萨’,‘宁夏’:‘银川’,‘辽宁’:‘沈阳’,‘青海’:‘西宁’,‘海南’:‘海口’,‘甘肃’:‘兰州’,‘陕西’:‘西安’,‘内蒙古’:‘呼和浩特’,‘台湾’:‘台北’,‘北京’:‘北京’,‘上海’:‘上海’,‘天津’:‘天津’,‘重庆’:‘重庆’,‘香港’:‘香港’,‘澳门’:‘澳门’}
设计程序,接收用户输入的省、直辖市、自治区和特别行政区名称,输出对应的省会名称,当输入错误时输出“输入错误”。程序可以重复接收用户输入,直接输入回车时退出程序。 -
输入
一个或多个输入
每行输入一个省、直辖市、自治区或特别行政区名称
最后一行输入一个回车 -
输出
输出对应的省会名称
演示 | 输入 | 输出 |
---|---|---|
示例1 | 新疆 | 乌鲁木齐 |
示例1 | 北京 | 北京 |
示例1 | (回车) | (结束) |
- 代码参考
capitals = {'湖南':'长沙','湖北':'武汉','广东':'广州','广西':'南宁','河北':'石家庄','河南':'郑州','山东':'济南','山西':'太原',
'江苏':'南京','浙江':'杭州','江西':'南昌','黑龙江':'哈尔滨','新疆':'乌鲁木齐','云南':'昆明','贵州':'贵阳','福建':'福州','吉林':'长春','安徽':'合肥',
'四川':'成都','西藏':'拉萨','宁夏':'银川','辽宁':'沈阳','青海':'西宁','甘肃':'兰州','陕西':'太原',
'内蒙古':'呼和浩特','台湾':'台北','北京':'北京','上海':'上海','天津':'天津','重庆':'重庆',
'香港':'香港','澳门':'澳门'}
while True:
province = input()
if province == '':
break
else:
print(capitals.get(province,'输入错误'))
题目摘抄于‘PYTHON123’平台 Python数据分析与可视化
更多推荐
所有评论(0)