在Python中对元组字典进行排序

Dav*_*ite 9 python sorting dictionary tuples

我知道python排序列表/词典已经有很多问题,但我似乎找不到一个对我来说有帮助的问题,而且我正在寻找最有效的解决方案,因为我将要排序一个相当大的数据集.

我的数据目前看起来基本上是这样的:

a = {'a': (1, 2, 3), 'b': (3, 2, 1)}
Run Code Online (Sandbox Code Playgroud)

我基本上创建了一个单词列表,其中我存储了每个单词以及一些关于它的统计数据(n,Sigma(x),Sigma(x ^ 2))

我想根据特定的统计数据对其进行排序.到目前为止,我一直在尝试以下方面:

b = a.items()
b.sort(key = itemgetter(1), reverse=True)
Run Code Online (Sandbox Code Playgroud)

我不确定如何根据它实际上是元组元组的列表来控制它排序的索引?我想我实际上需要嵌套两个itemgetter操作,但不确定如何做到这一点.

如果有更好的数据结构我应该使用,请告诉我.我是否应该创建一个小类/结构然后使用lambda函数来访问该类的成员?

非常感谢

Tim*_*ker 6

像这样的东西?

>>> a = {'a': (1, 2, 3), 'b': (3, 2, 1)}
>>> b = a.items()
>>> b
[('a', (1, 2, 3)), ('b', (3, 2, 1))]
>>> b.sort(key=lambda x:x[1][2])  # sorting by the third item in the tuple
>>> b
[('b', (3, 2, 1)), ('a', (1, 2, 3))]
Run Code Online (Sandbox Code Playgroud)