python中的字典类型数据及其操作

发布于:2025-02-11 ⋅ 阅读:(91) ⋅ 点赞:(0)
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'}

网站公告

今日签到

点亮在社区的每一天
去签到