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

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] += 1
    else:
        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中文文档

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章