字典的使用1

字典的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}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值