字典的key值也是用hash存储的,所以hash必须用不可变的值,元组,字符串,整数,小数
1、字典的创建
persion = {
'name': '小李',
'age': '19',
'address': '西安',
'content': {
'intrest': '跑步',
'sex': '男'
}
}
print(persion['age'])
print(persion['content']['sex'])
2、字典的长度,遍历字典
遍历字典中的键
print(len(persion))
for key in persion:
print(key, persion[key])
# 遍历字典中的值
for value in persion.values():
print(value)
# 遍历字典中的键值对
for key, value in persion.items(): #以二元组的形式将值遍历出来存储在key和value中
print(key, value)
3、字典的修改新增
persion['name'] = '小张' #如果字典中已经存在了name属性,修改name对应的value值
persion['pat'] = '小猫' #如果字典中没有pat属性,那就是新增加pat键值对
print(persion)
4、访问不存在的属性,建议使用get
print(persion['birthday']) # 没有该属性直接抛出异常KeyError
print(persion.get('birthday')) # 没有则返回None
print(persion.get('birthday', '五月')) #没有该属性,赋默认值
使用索引运算,一定要确保键存在,建议使用get。
if 'birthday' in persion:
print(persion['birthday'])
5、删除键值对
del persion['sex']
6、元素的更新合并
dict1 = {'a': 100, 'b': 200, 'c': 300}
dict2 = {'a': 600, 'd': 400, 'e': 500}
dict1.update(dict2)
print(dict1)
1、创建字典
a = {
"吕布":"口口布",
"关羽":"关习习"
}
2、更新字典
a["吕布"]="bubu"
print(a) {'吕布': 'bubu', '关羽': '关习习'}
3、新增元素
a["刘备"]="beibei"
print(a) #{'吕布': 'bubu', '关羽': '关习习', '刘备': 'beibei'}
4、删除元素
a.pop("吕布")
print(a) #{'关羽': '关习习', '刘备': 'beibei'}
del a["吕布"]
print(a) #{'关羽': '关习习', '刘备': 'beibei'}
5、清空字典
a.clear()
print(a) # {}
6、删除字典
del a
print(a) # name 'a' is not defined
7、批量更新
a.update(关羽="guanyu",刘备="liubei")
print(a) #{'关羽': 'guanyu', '刘备': 'liubei'}
8、查找
print(a["c"]) #报错
print(a.get("c")) #字典中没有就返回None,不会报错
print(a.get("c", "这里没有c")) #指定默认返回值
9、len()
a.len() #获取字典的长度
10、in ,not in
print("lv" in a ) #False
11、获取键值对,获取键,获取值
print(a.items()) #dict_items([('关羽', 'guanyu'), ('刘备', 'liubei')])
print(a.keys()) #dict_keys(['关羽', '刘备'])
print(a.values()) #dict_values(['guanyu', 'liubei'])
12、嵌套字典
a = {
"吕布": "口口布",
"刘备": {"语文": 80, "数学": 90},
"关羽": [60, 70, 80]
}
print(a["刘备"]["数学"]) #90
print(a["关羽"][1]) # 70
13,字典的推导式
d = {"t": 70, "a": 80, "b": 50, "l": 30, "e": 90}
c = {v:K for K,v in d.items()} # k,v的值转换
print(c)
输出结果 :{70: 't', 80: 'a', 50: 'b', 30: 'l', 90: 'e'}
x = {x:ord(x) for x in "table"} #计算Unicode编码
print(x) #{'t': 116, 'a': 97, 'b': 98, 'l': 108, 'e': 101}