py 字典操作

# dictionary 字典
'''
特点:
1,符号,{}
2,关键字:dict
3,保存的元素是:key:value
'''
dict1 = {}
# dict2 = dict() 了解
dict3 = {'ID':'4546464353545453','name':'tom','age':18}

#元组转字典,列表中额元素要成对出现
# dict4 = dict(('name','tom')) # {'name':'xxx','tom':'xxx'}
dict4 = dict([('name','tom'),('age',18)])
print(dict4)

#增删改查
#增加(修改) dict6[key]=value
#特点:key 在字典唯一,key重复则覆盖
d6 = {}
d6['brand'] = 'huawei'
print(d6)

#修改
d6['brand'] = 'huawei'

#查询,字典找元素根据key  如果找不到则报错
dict3 = {'ID':'4546464353545453','name':'tom','age':18}
print(dict3['ID'])

# get() 根据key 找value 如果找不到则返回 None
#     还可以找不到,则返回一个默认值
print(dict3.get('lis',0))

#单独遍历字典的结果是: 字典的key
for i in dict3:
    print(i)

# z字典里面的函数
#items()  values()  keys()
for i in dict3.items():
    print(i)
# ('ID', '4546464353545453')
# ('name', 'tom')
# ('age', 18)
#查看 字典中某个,或者某些值是tom 的key
dict3 = {'ID':'4546464353545453','name':'tom','age':18}
for key,value in dict3.items():
    if value == 'tom':
        print(key)

#求所有学生的考试成绩
dict4 = {'lis':20,'wangy':80,'mengshan':90,'guowy':85}
# i = 0 #总分
# for score in dict4.values():
#     print(score)
#     i += score
# print(i)
#平均分  values()  所有value
scores = dict4.values()
print(scores)
totle = sum(scores)
avg = totle/len(scores)
print(avg)

#keys(): 获取字典中所有的 key
names = dict4.keys()
print(names)
for name in names:
    print(name)

#查看key 是否在字典
print('guowy' in dict4)


#删除
dict4 = {'lis':20,'wangy':80,'mengshan':90,'guowy':85}
del dict4['lis']  # 如果key 不存在则 keyError
print(dict4)

#内置函数:pop(),删除成功,返回key的value,如果不存在则返回 0
result = dict4.pop('guowy',0)
print(dict4)

#popitem() 从末尾删除元素
dict4 = {'lis':20,'wangy':80,'mengshan':90,'guowy':85}
result = dict4.popitem()
print(dict4)

#clear() 清空
dict4.clear()

# update() key存在则替换,不存在则追加
# dict1 + dict2   合并
dict1 = {0:'lis',1:'wangw'}
dict2 = {0:'tom',3:'li2'}
result = dict1.update(dict2)
print(result)
print(dict1)
# None
# {0: 'tom', 1: 'wangw', 3: 'li2'}

#fromkeys(seq)
#将列表转换字典,默认值10 ,如果不给默认值则用None 代替
list1 = ['aa','bb','cc']
new_dict = dict.fromkeys(list1,10)
print(new_dict)
# {'aa': 10, 'bb': 10, 'cc': 10}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值