如何根据key
中的dictionary
对其进行排序?
df1 = [('f', {'abe': 1}), ('f', {'tbeli': 1}), ('f', {'mos': 1}), ('f', {'esc': 1})]
我试过这个
L1 = [year for (title, year) in (sorted(df1.items(), key=lambda t: t[0]))]
我想要
df1 = [('f', {'abe': 1}), ('f', {'esc': 1}), ('f', {'mos': 1}), ('f', {'tbeli': 1})]
谢谢
答案 0 :(得分:2)
您可以使用单独的函数来获取可迭代中的唯一项:
def only(iterable):
x, = iterable
return x
Dicts是密钥的迭代:
>>> only({'abe': 1})
'abe'
>>> only({'tbeli': 1})
'tbeli'
所以你可以用它来分类:
sorted(df1, key=lambda t: only(t[1]))
答案 1 :(得分:0)
如果所有的dicts只有1个密钥/对,那么这应该可行。
L1=sorted(df1, key=lambda t: list(t[1].keys())[0])