【Python Trick】Python中字典常用方法

字典常用操作

定义空字典

dic={}

键值对的添加

dic['name']='zhangsan'

字典遍历

通过items()方法返回的元组列表进行序列解包

for key,value in dic.items():
print('{}:{}'.format(key,value))
#print('%s:%s' %(key,value))

字典排序

字典按键排序

第一类

dic={
"key1": 5,
"key2": 6,
"key3": 4,
"key4": 3,
}
print(key,dic[key] for key in sorted(dic.keys))

第二类

dic={
"key1": 5,
"key2": 6,
"key3": 4,
"key4": 3,
}
#升序排序
dic=dict(sorted(dic.items(),key=lambda x:x[0]))
#降序排序
dic=dict(sorted(dic.itmes(),key=lambda x:x[0],reverse=True))

sorted(iterable,key,reverse)

  • iterable参数代表可以迭代的对象,例如可以是dict.items()dict.keys()
  • key参数是一个函数,用来选取参与比较的元素
  • reverse参数用来指定是升序还是降序

dic=dict(sorted(dic.items(),key=lambda x:x[0]))

  • dic.items()dic转换为可迭代对象,迭代对象的元素为该字典元素,将其转换为元组

  • key参数对应的lambda表达式即选取元组中的第一个元素作为比较参数,即键。

    lambda x:yx表示输出参数,y表示lambda函数的返回值.

  • sorted()函数返回值是list类型。

字典按值排序并输出Top K个元素

dic={
"key1": 5,
"key2": 6,
"key3": 4,
"key4": 3,
}
#升序排序
dic=dict(sorted(dic.items(),key=lambda x:x[1]))
#降序排序
dic=dict(sorted(dic.itmes(),key=lambda x:x[1],reverse=True))

#输出Top K个
cnt=0
k=10
for key,value in dic.items():
cnt+=1
if cnt>k:
break
print('{}:{}'.format(key,value))

字典对象写入Json文件

import json
dic={
"key1": 5,
"key2": 6,
"key3": 4,
"key4": 3,
}
#中文字符需要设置ensure_ascii属性为False,否则输出为ASII码
data=json.dumps(dic,ensure_ascii=False)
with open('xxx.json','w',encoding='utf-8') as f:
f.write(data)