FaC*_*fee 1 python dictionary max min
假设我有一个像这样的列表:
mydict={10:[],20:[],30:[],40:[],50:[1],60:[],70:[1],80:[7, 2, 7, 2, 2, 7, 2],90:[5, 2, 2, 6, 2, 3, 1, 2, 1, 2],...}
我想计算:dict中每个列表的min,max,median,1st和3rd四分位数.我试着min和max第一,就像这样:
mins_mydict={k:min(v) for k,v in mydict.items()}
maxes_mydict={k:max(v) for k,v in mydict.items()}
但我得到这个错误:ValueError: min() arg is an empty sequence.同样的max.是因为我的一些名单是空的吗?
如何创建检查是否的异常len(list)=0?
您可以为min,max指定默认值.因此,对于空列表,您将收到通知.
>>> min([] or [-1])
-1
Run Code Online (Sandbox Code Playgroud)
在你的情况下
>>> {k:min(v or [-1]) for k,v in mydict.items()}
{70: 1, 40: -1, 10: -1, 80: 2, 50: 1, 20: -1, 90: 1, 60: -1, 30: -1}
>>> {k:max(v or ["empty list"]) for k,v in mydict.items()}
{70: 1, 40: 'empty list', 10: 'empty list', 80: 7, 50: 1, 20: 'empty list', 90: 6, 60: 'empty list', 30: 'empty list'}
Run Code Online (Sandbox Code Playgroud)