字典的属性、方法与应用
类型:字典
描述
将用户输入用逗号分隔的一系列人名做为键,用户输入的逗号分隔的手机号做为值,创建字典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
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'}
参考代码
def method_of_dict(n, my_dict):
for i in range(n):
ls = input().split() # 输入命令及参数,之间用空格分隔
if ls[0] == 'print': # 每遇到“print”时,在新的一行输出字典
print(my_dict)
elif ls[0] == 'key': # 如果输入的命令是“key”,输出字典中全部键
print(list(my_dict.keys()))
elif ls[0] == 'value': # 如果输入的命令是“value”,输出字典中全部值
print(list(my_dict.values()))
elif ls[0] == 'update': # 如果输入的命令是“update”,更新ls[1]表示的键对应的值
my_dict[ls[1]] = ls[2]
elif ls[0] == 'add': # 如果输入的命令是“add”,增加一个键值对,题目确保输入的键在字典中不存在
my_dict[ls[1]] = ls[2]
elif ls[0] == 'del': # 如果输入的命令是“del”,删除字典中指定的键值对
if ls[1] not in my_dict: # 做存在性测试,键不存在时返回“键不存在”
print('键不存在')
else:
del my_dict[ls[1]] # MyDict.pop(ls[1])
elif ls[0] == 'clear': # 如要输入的命令是“clear”,清空字典中全部元素
my_dict.clear()
if __name__ == '__main__':
num = int(input()) # 输入一个正整数 n
name = input().split(',') # Tom,Jack,Lee
phoneNumber = input().split(',') # 13988776655,13855664488,13644668888
test_dict = dict(zip(name, phoneNumber)) # 以name为键,以phoneNumber为值生成字典
method_of_dict(num, test_dict)