字典的基础知识
Python中的字典由键值对(key-value)组成,key必须是不可变的,而且不允许有相同的Key值。
- 字典是无序的,Value的保存位置是由Key进行哈希值的计算得到的
- 字典与列表一样是可变的,而且支持动态增加
- 创建时如果同一个键被两次赋值,后一个值会被记住,前一个会被覆盖
基本操作
创建字典
""" 字典的创建 """
'''第一种方法'''
dict1 = dict(name='jake',age=18)
print(dict1,type(dict1))
print("-----------分界线-----------")
'''第二种方法'''
dict2 = {"张三":18,"李四":20}
print(dict2,type(dict2))
增删改查键
print("-----------增加与修改操作------------")
dict3 = {"张三": 18, "李四": 20,"王麻子":21}
dict3["王五"] = 19 # 增加键值对
dict3["李四"] = 21 # 修改Value值
print(dict3)
print("王麻子" in dict3)
print("李四" not in dict3)
del dict3["李四"] # 删除Key为李四的键值对
print(dict3)
dict3.clear() # 清空字典
print(dict3)
结果:
-----------增加与修改操作------------
{'张三': 18, '李四': 21, '王麻子': 21, '王五': 19}
True
False
{'张三': 18, '王麻子': 21, '王五': 19}
{}
字典中元素的获取
print("-----------------获取字典中的元素----------------")
dict2 = {"张三": 18, "李四": 20}
print(dict2.get("张三")) # 方法一
print(dict2["李四"]) # 方法二
# print(dict2["赵六"]) # 如果没有赵六这个Key,则报错KeyError: '赵六'
print(dict2.get("赵六")) # 用get()方法没有赵六返回None,不报错
获取视图
- key():获取字典中所有的Key值
- value():获取字典中所有的Value值
- items():获取字典中所有的Key Value对
print("-----------------获取视图-------------------")
dict5 = {"张三": 18, "李四": 20, "王五": 21}
print(dict5.keys())
print(list(dict5.keys())) # 将取出的Key值转为列表
print(dict5.values())
print(list(dict5.values())) # 将取出的Value值转为列表
print(dict5.items())
print(list(dict5.items())) # 将取出的Key-Value对转为列表,列表中的元素被元组包裹
结果:
---------------获取视图---------------------
dict_keys(['张三', '李四', '王五'])
['张三', '李四', '王五']
dict_values([18, 20, 21])
[18, 20, 21]
dict_items([('张三', 18), ('李四', 20), ('王五', 21)])
[('张三', 18), ('李四', 20), ('王五', 21)]
字典的遍历
dict5 = {"张三": 18, "李四": 20, "王五": 21}
for i in dict5:
print(i,dict5.get(i))
输出:
[('张三', 18), ('李四', 20), ('王五', 21)]
张三 18
李四 20
王五 21
字典生成式
new_list = ["张三", "李四", "王五", "赵六"]
new_list2 = [11,15,13,16,15,19]
lst = zip(new_list,new_list2)
print(dict(lst))