# 字典类型的创建方法:
1. 直接使用{ }填充键值对:
dict1 = {"key": "value"}
print(dict1) # {'key': 'value'}
2. 使用字典构造方法dict():
方法中需要传入一个可迭代对象,不传的话创建一个空字典;
list = [("a", "b"), ("c", "d")]
dict1 = dict(list)
print(dict1) # {'a': 'b', 'c': 'd'}
dict2 = dict()
print(dict2) # {}
需要注意的是:dict()中的第一层 [ ] 本意是一个列表,这种情况下是将列表转化为一个字典,字典可以为空,所以第一层[]中可以不包含内容;第二层 [ ] / ( ) 代表字典中的一个键值对,所以必须包含两个元素
3. 使用字典推导式:
list = [["e", "f"], ["g", "h"]]
dict = {k, v for k: v in list}
print(dict) # {'e': 'f', 'g': 'h'}
使用字典推导式还可以简化一些场景的代码数量:
例:给定一个字典对象{'a': 1, 'b': 2, 'c': 3},找出其中所有大于 1 的键值对,同时 value 值进行平方运算
使用一般方法:
dict = {'a': 1, 'b': 2, 'c': 3}
data = {}
for x, y in dict.items():
if y > 1:
data[x] = y**2
print(data)
.item()
方法是 Python 中字典的内置方法,主要用于获取字典中键值对的键和值(即 key 和 value)。
使用推导式:
dict = {'a': 1, 'b': 2, 'c': 3}
data = {x: y**2 for x, y in dict.items() if y > 1}
print(data)
# 访问字典中的元素:
字典中使用key来访问对应value值:
dict = {"a": "b", "c": "d"}
print(dict["c"]) # d
# 新增/修改 字典元素:
dict[key] = value 如果key不存在,则会在字典中新增一个"key": "value" 键值对;如果key已经存在,则会将key对应的value值修改为最新值;
dict = {"a": "b", "c": "d"}
dict["e"] = "f"
dict["c"] = "k"
print(dict) # {'a': 'b', 'c': 'k', 'e': 'f'}
# 嵌套字典:
dict6 = {"room": 123456, "switch": {"LIVE": "ON", "APP": "OFF"}}
print(dict6["switch"]["LIVE"]) # 获取LIVE键的值 ON
dict6["switch"]["APP"] = "CRASH" # 修改APP键的值
print(dict6["switch"]["APP"]) # CRASH
# 字典方法:
keys() 返回一个由字典中key组成的新视图对象
dict = {"a": "b", "c": "d"}
key = dict.keys()
print(key) # dict_keys(['a', 'c'])
values() 返回一个由字典中value组成的新视图对象
dict = {"a": "b", "c": "d"}
value = dict.values()
print(value) # dict_values(['b', 'd'])
items() 返回一个由字典中 键值对 组成的新视图对象
dict = {"a": "b", "c": "d"}
item = dict.items()
print(item) # dict_items([('a', 'b'), ('c', 'd')])
get(key) 获取指定key关联的value值 入参:key必传 返回:如果key存在于字典中,返回对应value值 如果key不存在,则返回None,不会引发KeyError错误
dict = {"a": "b", "c": "d"}
find = dict.get("a")
print(find) # b
find_2 = dict.get("x")
print(find_2) # None
update(dict) 使用来自dict的键/值对更新字典,覆盖原有的键和值,若键不存在,则新建 入参:字典对象,必传 返回:None
dict = {"a": "b", "c": "d"}
dict.update({"a": "e"})
print(dict) # {'a': 'e', 'c': 'd'}
dict.update({"o": "k"})
print(dict) # {'a': 'e', 'c': 'd', 'o': 'k'}
pop(key) 删除指定key的键值对,并返回删除key对应的value值,入参:key必传 返回:如果key存在于字典中,则将其移除并返回value值 如果key不存在于字典中,则会引发KeyError
dict = {"a": "b", "c": "d"}
delete = dict.pop("a")
print(delete) # b
delete_2 = dict.pop("o") # KeyError: 'o'
# 字典推导式 实例:
给定一个字典对象,请使用字典推导式,将它的key和value分别进行交换。也就是key变成值,值变成key。
输入: {'a': 1, 'b': 2, 'c': 3}
输出: {1: 'a', 2: 'b', 3: 'c'}
dict = {'a': 1, 'b': 2, 'c': 3}
dict_2 = {y: x for x, y in dict.items()}
print(dict_2) # {1: 'a', 2: 'b', 3: 'c'}