我有一个python字典,如
{
'FOUR':
[['emit', 'build', 'simulate'], 'TestFour', 2],
'HELLO':
[['emit', 'build', 'simulate'], 'TestThree', 1]
}
如何根据数字1,2迭代元素?我的意思是,我怎样才能得到'HELLO'(1),然后'四'(2)?
答案 0 :(得分:4)
for x in sorted(d, key=lambda x:d[x][2]):
print x
这将打印
HELLO
FOUR
答案 1 :(得分:2)
如果d
是您的字典:
for k in sorted(d.keys(), key=lambda k, d=d: d[k][2]):
...
这是如何工作的?首先,我们希望按特定顺序使用密钥,因此我们使用sorted
内置函数。 sorted
采用key
参数“指定一个参数的函数,该参数用于从每个列表中提取比较密钥。”这里提供的lambda使用密钥从相应的值中检索第三个项目,然后用于对键进行排序。
答案 2 :(得分:0)
my_list = (t[1] for t in sorted([(v[2],k) for k,v in my_dict.iteritems()]))
list(my_list) == ['HELLO', 'FOUR']