|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
假设a字典是这样的 a={'h': [1, 5], 'k': [2, 3], 't': [4, 10], 'u': [3, 8], 'e': [8, 7]}
我现在要求以值(就是这个列表)第一个大于2作为筛选条件,然后在按第二个数的大小排序
也就是得到{'e': [8, 7],'u': [3, 8], 't': [4, 10]}这样的结果
请问该怎么写这个表达式
- from collections import OrderedDict
- a={'h': [1, 5], 'k': [2, 3], 't': [4, 10], 'u': [3, 8], 'e': [8, 7]}
- # 过滤
- a = dict(filter(lambda x: x[1][0] > 2, a.items()))
- print(a)
- # 排序
- a = OrderedDict(sorted(a.items(), key=lambda t:t[1][1]))
- print(a)
- a = dict(a)
- print(a)
复制代码
解释一下,dict原则上是无序的,但是在python3.6(含3.6)以后,偷偷改成有序的了,但是顺序是按照添加进去的顺序排序。这个顺序并不太严谨,要是仅仅为了好看的话,直接转就行。
不过对python3.6以前的版本无效。
|
|