常把map
称之为映射,就是将一个元素(通常称之为key
键)与一个相对应的值(通常称之为value
)关联起来
通常用**字典dict
**实现了映射这种数据结构
字典也是使用{}
来包裹(set也是{}),每个键值对用冒号:
分隔,键值对与键值对之间用逗号,
分隔,其具体格式如下:
my_dict = {"mike": 99,"tom": 98,"jerry": 100
}
字典中的键数据类型必须是不可变的(字符串、数字、元组等), 但是值可以是任意的数据类型。
【注意】:如果直接创建一个{}
, 表示这是一个空字典,而并非一个空集合。也使用内置函数 dict()
创建字典,如果想要给字典添加键值对,可以直接通过dict[key] = value
的形式。
创建空字典
dict1 = {}dict2 = dict()
添加键对值
dict1["Mike"] = 99
dict1["Tom"] = 98
dict1["Jerry"] = 97
更新值
dict["Mike"] = 100
访问值
print(dict1["Mike"])
删除键对值:del(),clear()
del dict1["Mike"] #删除对应的键对值
dict1.clear() #清空字典
del dict #删除字典
检查字典中的键是否存在也是使用in
来判断, 如果键在字典中返回 true, 否则 返回 false 。
if "mike" in my_dict:print(my_dict["mike"])
else:print("mike doesn't exist in the dictionary")
for遍历键值
字典的遍历需要搭配使用for
和dict.items()
, 对items()
方法返回了字典中的所有键值对的视图对象。这个视图象可以用于迭代字典中的键值对。
for key, value in dict1.items():print(f"Key: {key}, Value: {value}")
代码如下
s = int(input())
for _ in range(s):n = int(input())my_dict = dict()for _ in range(n):# key = input()# value = input()# my_dict[key] = valuekey, door = map(int,input().split()) #python支持这样同时赋值my_dict[key] = doordoor = int(input())flag = 0for key, value in my_dict.items():if value == door:print(key)flag = 1breakif flag == 0:print("Can't open the door.")