如何先按字母顺序对字典排序,然后按值升序排列?

奇迹警告

我有一本字典,mydict形状如下:

{'qui': [(4, 1), (3, 2), (10, 1)], 'voluptate': [(3, 1)], 'est': [(4, 1)], 'reprehenderit': [(3, 1)], 'cillum': [(3, 1), (9, 1)], 'irure': [(1, 1), (3, 1)], 'laboris': [(2, 1)], 'sit': [(1, 1)], 'sunt': [(4, 1)], 'eu': [(3, 1)], 'nisi': [(5, 1), (2, 1)]}

我需要先按字母顺序对键进行排序,然后完成操作,然后按元组中的第一个数字对元组进行排序。

我所看到的资源进行排序首先由键然后值按字母顺序排序,并通过值,那么关键的排序,但毫无疑问,到目前为止已经有这个问题。

我试过使用,sorted_dict = sorted(d.keys())但这只是按字母顺序返回键的列表,而不是它们的值

如何达到如下目标结果?:

{'cillum': [(3, 1), (9, 1)], 'est': [(4, 1)], 'eu': [(3, 1)], 'irure': [(1, 1), (3, 1)], 'laboris': [(2, 1)], 'nisi': [(2, 1), (5, 1)], 'qui': [(3, 2), (4, 1), (10, 1)], 'reprehenderit': [(3, 1)], 'sit': [(1, 1)], 'sunt': [(4, 1)], 'voluptate': [(3, 1)],}

python --version yields Python 3.6.7
皮托

正如@DeepSpace指出的那样,OP使用Python 3.6。

因此,dicts order是实现细节,我们必须使用OrderedDict。

这是我的版本:

from collections import OrderedDict

d = {'qui': [(4, 1), (3, 2), (10, 1)], 'voluptate': [(3, 1)], 'est': [(4, 1)], 'reprehenderit': [(3, 1)], 'cillum': [(3, 1), (9, 1)], 'irure': [(1, 1), (3, 1)], 'laboris': [(2, 1)], 'sit': [(1, 1)], 'sunt': [(4, 1)], 'eu': [(3, 1)], 'nisi': [(5, 1), (2, 1)]}

ordered_dict = OrderedDict()
sorted_keys = sorted(d.keys())

for key in sorted_keys:
    sorted_values = sorted(d[key])
    ordered_dict[key] = sorted_values

print(ordered_dict)

输出:

OrderedDict([('cillum', [(3, 1), (9, 1)]), ('est', [(4, 1)]), ('eu', [(3, 1)]), ('irure', [(1, 1), (3, 1)]), ('laboris', [(2, 1)]), ('nisi', [(2, 1), (5, 1)]), ('qui', [(3, 2), (4, 1), (10, 1)]), ('reprehenderit', [(3, 1)]), ('sit', [(1, 1)]), ('sunt', [(4, 1)]), ('voluptate', [(3, 1)])])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Dplyr / tidyverse如何首先按可用值的数量对列进行排序,然后按字母顺序对列进行排序?

我想按数字降序然后按字母顺序升序对字典进行排序

如何先按字母然后按数字排序?

如何先按值然后按键对字典排序

如何先按属性值然后按日期排序

按值对Hashmap排序,然后按字母顺序排序

首先按字母顺序对列表进行排序,然后按数字对列表进行排序?

如何首先按 id 获取特定行,然后按特定列的字母顺序对其余行进行排序

Java 排序列表,流首先按长度,然后按字母顺序

首先按值对字典排序,然后按 python 3 中的键排序

首先按特定值排序,然后按顺序显示所有其余部分

如何先按字母然后按数字组合对字符串数组进行排序?

Python按降序排序字典,然后按字母顺序排序

如何使用sort_by按字母顺序然后按数字顺序然后按特殊字符排序

使 Vuetify v-data-table 列首先按降序排序,然后按升序排序?

如何按字母顺序对 csv 数据进行排序,然后按列按数字排序?

在Python字典中按值排序(降序),然后按键(升序)

熊猫value_counts:按值排序,然后按字母顺序排序?

按子数组类型值排序,然后按字母顺序排序

按值然后按键对字典排序

按字母顺序排列数组,然后按大写,然后按小写

MySQL-如何按名称排序,然后按字母数字顺序在表上排序?

SQL如何用数字按字母顺序排序文本,然后按数字排序

Laravel查询生成器:如何按日期对结果进行排序-首先按未来日期的升序排序,然后按过去日期的降序排序?

C-按计数排序,然后按字母顺序

首先按固定顺序的子组对data.frame列进行重新排序,然后按字母顺序在每个子组内重新排序

如何按键的第一个字母然后按字典中的值排序

如何按字母顺序然后按数字顺序?

如何按长度排序列表,然后按字母顺序反向