当前位置: 代码迷 >> 综合 >> Python-常用数据结构(字典)-Dict
  详细解决方案

Python-常用数据结构(字典)-Dict

热度:93   发布时间:2023-11-11 03:47:26.0

1.创建字典

dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
print('dict1的值:{}'.format(dict1))
# 输出结果  dict1的值:{'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}

2.访问字典元素

dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
print('通过key访问value方法一,{}'.format(dict1['k1']))
# 输出结果  通过key访问value方法一,z1
print('通过key访问value方法二,{}'.format(dict1.get('k2')))
# 输出结果  通过key访问value方法二,z2

3.操作字典

# 通过key增加/修改元素
dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
dict1['k1'] = 1     # 如有字典中有对应的key则更新
dict1['k4'] = 'z4'  # 如字典中没有对应的key则新增
print('dict1的值是:{}'.format(dict1))
# 输出结果  dict1的值是:{'k1': 1, 'k2': 'z2', 'k3': 'z3', 'k4': 'z4'}# 同过key删除元素
dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
dict1.pop('k3')
print('删除k3后的dict1值是:{}'.format(dict1))
# 输出结果  删除k3后的dict1值是:{'k1': 'z1', 'k2': 'z2'}

4.遍历字典

# 只获取key值
dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
for key in dict1:value = dict1[key]print('key值是:{},value值是:{}'.format(key, value))# 输出结果 分三次输出  key值是:k1,value值是:z1   key值是:k2,value值是:z2  key值是:k3,value值是:z3
# 只获取值
for value in dict1.values():print(value)# 输出结果  分三次输出 z1  z2  z3
# 获取key和value
for key, value in dict1.items():print('key是:{},value是:{}'.format(key, value))# 输出结果  分三次输出  key是:k1,value是:z1  key是:k2,value是:z2  key是:k3,value是:z3# 先获取键值对的下标,再通过key获取value
for index, key in enumerate(dict1):value = dict1[key]print('下标:{},key:{},value:{}'.format(index, key, value))# 输出结果  分三次输出  下标:0,key:k1,value:z1  下标:1,key:k2,value:z2  下标:2,key:k3,value:z3

5.小例子:统计列表中元素重复出现的次数

list1 = [1, 1, 2, 2, '1', '1', 3, 3, '3', '3', 1, 1]
dict1 = {}
# 遍历列表
for item in list1:# 判断 list1重复元素作为key的,键值对是否在dict1中 ,如果在则加1,如果不在则新建一个存放在dict1中if item in dict1:dict1[item] += 1else:dict1[item] = 1
print('dict1的值是:{}'.format(dict1))
# 输出结果  dict1的值是:{1: 4, 2: 2, '1': 2, 3: 2, '3': 2}  dict1的key是列表list的元素,value是出现的次数
bool类型也能作为字典的key值,需要注意的时候bool类型的True和False分别对应0和1,因为字典key值的唯一性,
True和1 不能同时出现  False不能和0同时出现

以上仅是我的个人理解,希望大神能指出其中的理解错误之处,像要了解更多可以查看 python中文文档