1.集合的属性、方法与运算

  • 描述
    将用户输入用空格分隔的一系列地名创建集合MySet,输入一个正整数 n,你将被要求读入 n 个输入(输入形式如下所示),每得到一个输入后,根据输入进行操作。
add name:             # 在集合中加入元素name
print:                # 将集合转为列表,按元素升序排序后输出列表
del name:             # 删除集合中的元素name,当name不存在时,不能引发错误
update name:          # name为空格逗号分隔的字符串,将其转为集合,并用name中的元素修改集合MySet
clear:                # 清空集合
  • 输入
    第一行输入一个正整数 n‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    第二行输入用空格分隔的字符串切分为一系列地名‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    随后的 n 行,每行输入一个如示例格式的命令,命令与参数间空格分隔‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
  • 输出
    每遇到“print”时,将集合转为列表,按元素升序排序后输出列表
演示输入输出
示例18
湖北 湖南 吉林
print
del 湖北
print
clear
add 江西
add 河北
update 北京 上海 天津 重庆
print
[‘吉林’, ‘湖北’, ‘湖南’]
[‘吉林’, ‘湖南’]
[‘上海’, ‘北京’, ‘天津’, ‘江西’, ‘河北’, ‘重庆’]
  • 代码参考
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”时,在新的一行输出字典

演示输入输出
示例18
Tom,Jack,Lee
13988776655,13855664488,13644668888
key
value
print
clear
add ethan 17700001111
add Tom 13988776655
update Tom 13000112222
print
[‘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.列表去重

  • 描述
    输入一系列以逗号分隔的英文人名,其中包含重复的名字,请将其中重复的名字去掉,输出包含不重复人名的列表,名字出现顺序与输入顺序相同。
  • 输入
    一系列以逗号分隔的英文人名
  • 输出
    包含不重复人名的列表,名字出现顺序与输入顺序相同
演示输入输出
示例1Calvin,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‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

  • 输出
    输出指定个数的排序后的元素

演示输入输出
示例12[‘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数据分析与可视化

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐