retry和defaultdict包、sorted字典排序

1、retry

参考:https://github.com/jd/tenacity
https://www.bilibili.com/video/BV1sv411r7vW?from=search&seid=17610443483361221609

stop_after_attempt:尝试3次
stop_after_delay:等运行总共3秒
stop=stop_after_delay(3)

wait_fixed:每次异常后等待3秒再运行
wait = wait_fixed(3)
rerasie = True 表示异常用原函数的异常信息,不用retry包的retry Exception

from tenacity import retry,wait_fixed,wait_random,stop_after_attempt,stop_after_delay

@retry(stop=stop_after_delay(3))
def task():
    print("hah")
    raise Exception
    
task()

2、defaultdict

dict =defaultdict( factory_function)

这个factory_function可以是list、set、str等等,作用是当key不存在时,返回的是工厂函数的默认值,比如list对应[ ],str对应的是空字符串,set对应set( ),int对应0

from collections import defaultdict
dict1 = defaultdict(int)
dict2 = defaultdict(set)
dict3 = defaultdict(str)
dict4 = defaultdict(list)
dict1[2] ='two'

print(dict1[1])
print(dict2[1])
print(dict3[1])
print(dict4[1])

retry和defaultdict包、sorted字典排序_第1张图片

3、sorted字典排序

reverse = true是倒序,reverse = flase 是升序

1、安装key排序

my_dict = {'lilee':25, 'age':24, 'phone':12}
sorted(my_dict.keys())
输出结果为

['age', 'lilee', 'phone']

2、按照value排序

d = {'lilee':25, 'wangyan':21, 'liqun':32, 'age':19}
sorted(d.items(), key=lambda item:item[1])
输出结果为

[('age',19),('wangyan',21),('lilee',25),('liqun',32)]
如果需要倒序则

sorted(d.items(), key=lambda item:item[1], reverse=True)
得到的结果就会是

[('liqun',32),('lilee',25),('wangyan',21),('age',19)]

你可能感兴趣的:(知识点)