1、字典的定义
- 映射是一种键(索引)和值(数据)的对应
- 键值对:键是数据索引的扩展
- 字典是键值对的集合,键值对之间无序
- 字典采用大括号{}和dict()创建,键值对用冒号:表示,key:value
2、列表转字典
-
语法:
d = dict([(element1, element2), (element3, element4)...]) # 列表中的元素需要成对出现 d1 = dict([(1, 2), (3, 4)]) print(d1) # 输出:{'1':2, '3':4} d2 = dict([(1, 2, 3), (4, 5)]) print(d2) # 报错
3、字典类型操作函数和方法–字典的增删改查
函数或方法 | 描述 |
---|---|
del d[k] | 删除字典d中键K对应的数据,k不存在会报错 |
k in d | 判断键K是否存在于字典d中,如果在返回True,否则返回False |
d.keys() | 以列表的形式返回字典d中所有的键信息 |
d.values() | 以列表的形式返回字典d中所有的值信息 |
d.items() | 以列表的形式返回字典d中所有的键值对信息,键值对以元组的形式出现 |
d.get(k, ) | 键k存在则返回相应value,不存在则返回值,不给值则返回None |
d.pop(k, ) | 键k存在则返回相应value并将其删除,不存在则返回值,不给值则报错 |
d.popitem() | 随机从字典中取出一个键值对,以元祖形式返回,并将其删除,一般是从末尾开始删除 |
d.clear() | 删除所有键值对 |
len(d) | 返回字典中的元素个数 |
3.1、向字典中新增和修改元素
- 语法
dict[key] = value # 如果key已存在于dict中,则为修改dict中键key的值
- 示例
d = {}
d['brand'] = 'oppo'
print(d) # 输出:{'brand':'oppo'}
d['brand'] = 'huawei'
print(d) # 输出:{'brand':'huawei'}
d['type'] = 'mate 70'
print(d) # 输出:{'brand':'huawei', 'type':'mate 70'}
3.2、字典元素的查询
-
字典都是根据key获取value值
print(d[type]) # 输出:'mate 70'
-
d.keys()获取字典的所有键,放在一个列表中
print(d.keys()) # 输出:dict_keys(['brand', 'type'])
-
遍历字典的key
for k in d:
print(k)
'''
输出:
brand
type
'''
for k in d.keys():
print(k)
'''
输出:
brand
type
'''
-
遍历字典的键和值
for kv in d.items(): # d.items() --> [(key1, value1), (key2, value2)] print(kv) ''' 输出: ('brand', 'huawei') ('type', 'mate 70') ''' for k, v in d.items(): print(k, v) ''' 输出: brand huawei type mate 70 '''
-
d.values()取出字典中所有的value,放在一个列表中
print(d.values()) # 输出:dict_values(['huawei', 'mate 70'])
-
遍历字典中的values
for v in d.values(): print(v) ''' 输出: huawei mate 70 '''
-
k in d:判断k是否在d的键中
print('brand' in d) # 输出:True
-
d.get(k[,default]):键k存在则返回相应value,不存在则返回值,不给值则返回None
d = {'brand': 'huawei', 'type': 'mate 70'} d.get('brand') # 'huawei' d.get('t') # None d.get('t', 'd中不存在t') # d中不存在t
-
d.update()
d = {'brand': 'huawei', 'type': 'mate 70'} d1 = {'type': 'p70', 'date': 2024} d.update(d1) # 将d和d1合并,如果d1中的key与d中相同,则覆盖d中的值 print(d.update(d1)) # 输出:None print(d) # 输出:{'brand': 'huawei', 'type': 'p70', 'date': 2024}
-
dict.fromkeys(seq[, default]):将序列类型seq转换成字典的形式,default为指定默认的value,如不指定则为None
str1 = 'abcde' nd = dict.fromkeys(str1, 888) print(nd) # 输出:{'a': 888, 'b': 888, 'c': 888, 'd': 888, 'e': 888} nd1 = dict.fromkeys(str1) print(nd1) # 输出:{'a': None, 'b': None, 'c': None, 'd': None, 'e': None}
3.3、字典的删除
- del d[key]:删除字典d中键K对应的数据,k不存在会报错
d = {'brand': 'huawei', 'type': 'mate 70'}
del d['t'] # KeyError:'t'
- d.pop(k[,default]):键k存在则返回相应value并将其删除,不存在则返回值,不给值则报错
d = {'brand': 'huawei', 'type': 'mate 70'}
d.pop('t', 'd中不存在t') # 输出:d中不存在t
d.pop('t') # KeyError:'t'
d.pop('type') # 'mate 70'
print(d) # {'brand': 'huawei'}