Python按值按键排序字典项

时间:2014-01-08 18:15:22

标签: python python-3.3

我有以下字典:

{1: (8, 3), 0: (8, 0), 2: (2, 3), 3: (2, 0)}

我想用元组键然后按字典的键对它进行排序,以便上面的内容如下:

 [{1: (2, 3), 3: (2, 0),0: (8, 3), 1: (8, 0)}]

我写了以下内容:

result_list = sorted(codebook.items(), key= lambda item: item[1][0])

这通过元组键排序,但之后不是字典键。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

sorted(codebook.items(), key= lambda item: (item[1][0],item[0]))

这将首先按元组中的第一项排序,然后按字典键

排序

只是为了澄清OP的一些事情

  • 字典不可排序,因此您无法拥有“排序”字典

    • (有一个OrderedDictionary,但它与a基本相同 NamedTuple,这两个容器都有订单)
  • 这将返回元组列表而不是字典。回报看起来像

    [(dictionary_key,(tuple,values)),(dictionary_key,(tuple,values),...]