根据值索引和字母顺序对python字典进行排序

ljman711

我正在尝试对python字典进行排序,并遇到了一些问题。字典采用以下格式:{UID:名称,类型}。

dic1={"720155": ["CAT", "Software"], "356d05": ["ESF", "Software"], "3b3758": ["DBA", "Software"], "9649db": ["Fun", "Software"], "96493f": ["Eagle", "Software"], "99701d": ["Pas", "Software"], "964971": ["Debug", "Software"], "b6f315": ["Bap", "Software"], "a0a824": ["Server", "Software"], "1e00sa": ["Adobe", "Software"], "8c8dd2": ["EXIT", "Software"], "cc1dfg": ["email", "Software"]}

我使用了,sorted(dic1.iteritems(), key=operator.itemgetter(1))但这允许“电子邮件”项位于最后,而不是“调试”名称之后。见下文:

[('1e00sa', ['Adobe', 'Software']), 
('b6f315', ['Bap', 'Software']), 
('720155',['CAT', 'Software']), 
('3b3758', ['DBA', 'Software']), 
('964971', ['Debug', 'Software']), 
('356d05', ['ESF', 'Software']), 
('8c8dd2', ['EXIT', 'Software']), 
('96493f', ['Eagle', 'Software']), 
('9649db', ['Fun', 'Software']), 
('99701d', ['Pas', 'Software']), 
('a0a824', ['Server', 'Software']), 
('cc1dfg', ['email', 'Software'])]

我尝试使用sorted(sorted(dic1.iteritems(), key=operator.itemgetter(1)), key=str.lower),但这会导致一个错误,即接收到一个元组而不是一个字符串。

有任何想法吗?我无法更改字典的形成方式,它必须保持原样。

马丁·彼得斯(Martijn Pieters)

您需要一个更复杂的按键功能:

sorted(dic1.iteritems(), key=lambda i: i[1][0].lower())

这将对值的第一个元素进行小写排序。

演示:

>>> from pprint import pprint
>>> dic1={"720155": ["CAT", "Software"], "356d05": ["ESF", "Software"], "3b3758": ["DBA", "Software"], "9649db": ["Fun", "Software"], "96493f": ["Eagle", "Software"], "99701d": ["Pas", "Software"], "964971": ["Debug", "Software"], "b6f315": ["Bap", "Software"], "a0a824": ["Server", "Software"], "1e00sa": ["Adobe", "Software"], "8c8dd2": ["EXIT", "Software"], "cc1dfg": ["email", "Software"]}
>>> pprint(sorted(dic1.iteritems(), key=lambda i: i[1][0].lower()))
[('1e00sa', ['Adobe', 'Software']),
 ('b6f315', ['Bap', 'Software']),
 ('720155', ['CAT', 'Software']),
 ('3b3758', ['DBA', 'Software']),
 ('964971', ['Debug', 'Software']),
 ('96493f', ['Eagle', 'Software']),
 ('cc1dfg', ['email', 'Software']),
 ('356d05', ['ESF', 'Software']),
 ('8c8dd2', ['EXIT', 'Software']),
 ('9649db', ['Fun', 'Software']),
 ('99701d', ['Pas', 'Software']),
 ('a0a824', ['Server', 'Software'])]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中对字典值进行排序-按字母顺序降序

来自分类Dev

按值和字典顺序对字典进行排序

来自分类Dev

Python根据字母而不是月份顺序对月份进行排序

来自分类Dev

按字母顺序对字典进行排序

来自分类Dev

根据字母顺序对HTML属性进行排序

来自分类Dev

Python字典列表,按时间顺序对值进行排序和打印

来自分类Dev

根据频率和字母顺序排序

来自分类Dev

按值对字典键进行排序,然后按字母顺序对具有相同值的键进行排序

来自分类Dev

Python:根据不同的字母顺序排序

来自分类Dev

根据字母顺序排序

来自分类Dev

按键对字典进行排序:单键优先级和字母顺序

来自分类Dev

如何按字母顺序和最高编号对列表中的字典进行排序

来自分类Dev

根据值对Python字典排序

来自分类Dev

如何按字母顺序按索引值对数据框的列进行排序

来自分类Dev

MSAccess中的SQL查询可根据其排序顺序对带有字母的值列进行排名

来自分类Dev

如何根据字典值对列表进行排序?

来自分类Dev

根据不同的值对字典的键进行排序

来自分类Dev

根据特定值对字典进行排序

来自分类Dev

Python对字典值进行排序

来自分类Dev

Python:按值对字典排序,并在有联系的情况下按字母顺序维护

来自分类Dev

如何使用Python按字母数字顺序按值对字典排序?

来自分类Dev

按出现顺序和字母顺序对列表进行排序

来自分类Dev

如何按字母顺序对索引进行排序

来自分类Dev

按指定的索引对数组排序,在保持字母顺序的同时对布尔值进行优先排序

来自分类Dev

用户根据姓氏按字母顺序对输入的名称进行排序

来自分类Dev

根据姓氏的字母顺序自动对卡片进行排序

来自分类Dev

根据搜索输入按字母顺序对数组进行排序

来自分类Dev

用两个键(频率和字典顺序)对Python中的字典进行排序

来自分类Dev

按自定义顺序对包含字母和符号的值进行排序

Related 相关文章

  1. 1

    在python中对字典值进行排序-按字母顺序降序

  2. 2

    按值和字典顺序对字典进行排序

  3. 3

    Python根据字母而不是月份顺序对月份进行排序

  4. 4

    按字母顺序对字典进行排序

  5. 5

    根据字母顺序对HTML属性进行排序

  6. 6

    Python字典列表,按时间顺序对值进行排序和打印

  7. 7

    根据频率和字母顺序排序

  8. 8

    按值对字典键进行排序,然后按字母顺序对具有相同值的键进行排序

  9. 9

    Python:根据不同的字母顺序排序

  10. 10

    根据字母顺序排序

  11. 11

    按键对字典进行排序:单键优先级和字母顺序

  12. 12

    如何按字母顺序和最高编号对列表中的字典进行排序

  13. 13

    根据值对Python字典排序

  14. 14

    如何按字母顺序按索引值对数据框的列进行排序

  15. 15

    MSAccess中的SQL查询可根据其排序顺序对带有字母的值列进行排名

  16. 16

    如何根据字典值对列表进行排序?

  17. 17

    根据不同的值对字典的键进行排序

  18. 18

    根据特定值对字典进行排序

  19. 19

    Python对字典值进行排序

  20. 20

    Python:按值对字典排序,并在有联系的情况下按字母顺序维护

  21. 21

    如何使用Python按字母数字顺序按值对字典排序?

  22. 22

    按出现顺序和字母顺序对列表进行排序

  23. 23

    如何按字母顺序对索引进行排序

  24. 24

    按指定的索引对数组排序,在保持字母顺序的同时对布尔值进行优先排序

  25. 25

    用户根据姓氏按字母顺序对输入的名称进行排序

  26. 26

    根据姓氏的字母顺序自动对卡片进行排序

  27. 27

    根据搜索输入按字母顺序对数组进行排序

  28. 28

    用两个键(频率和字典顺序)对Python中的字典进行排序

  29. 29

    按自定义顺序对包含字母和符号的值进行排序

热门标签

归档