如何根据不同级别的一组键对Python中的列表进行排序

斯里纳特

我有一list本字典python我想按keys进行排序,即,首先是 by chain_id,然后是 by start.residue_number,然后是 by end.residue_numberlist下面,第 4 个和第 6 个元素应该相反。我可以使用sortedwithfrom operator import itemgetter, attrgetter进行排序chain_id,但是如何使用dictionaryinside进行排序dictionary

            "mappings": [
                {
                    "entity_id": 1,
                    "end": {
                        "residue_number": 63
                    },
                    "start": {
                        "residue_number": 1
                    },
                    "chain_id": "A",
                    "struct_asym_id": "A"
                },
                {
                    "entity_id": 1,
                    "end": {
                        "residue_number": 116
                    },
                    "start": {
                        "residue_number": 1
                    },
                    "chain_id": "A",
                    "struct_asym_id": "A"
                },
                {
                    "entity_id": 1,
                    "end": {
                        "residue_number": 124
                    },
                    "start": {
                        "residue_number": 1
                    },
                    "chain_id": "A",
                    "struct_asym_id": "A"
                },
                {
                    "entity_id": 1,
                    "end": {
                        "residue_number": 116
                    },
                    "start": {
                        "residue_number": 1
                    },
                    "chain_id": "B",
                    "struct_asym_id": "B"
                },
                {
                    "entity_id": 1,
                    "end": {
                        "residue_number": 124
                    },
                    "start": {
                        "residue_number": 1
                    },
                    "chain_id": "B",
                    "struct_asym_id": "B"
                },
                {
                    "entity_id": 1,
                    "end": {
                        "residue_number": 63
                    },
                    "start": {
                        "residue_number": 1
                    },
                    "chain_id": "B",
                    "struct_asym_id": "B"
                }
            ]
拉胡尔KP

我假设d作为你的字典,解决了sortedlambda

# Sort with chain_id
In [93]: sort_1 = sorted(d['mappings'],key=lambda x:x['chain_id'])
# Sort with start residue number
In [94]: sort_2 = sorted(sort_1,key=lambda x:x['start']['residue_number'])
# Sort with end residue number
In [95]: sort_3 = sorted(sort_2,key=lambda x:x['end']['residue_number'])

或者你可以在一条线上做。

sorted(d['mappings'],key=lambda x:(x['chain_id'],x['start']['residue_number'],x['end']['residue_number']))

灵感来自 leotrubach 的回答。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据不同领域对一组对象进行排序

如何使用Python根据一个文件对一组文件的内容进行排序

如何在R中的复杂列表中组合不同级别的多个元素?

在Clojure中,如何按值内的键对一组地图进行排序?

如何根据java中的Enum字段对一组对象进行排序

对列表中的一组单词进行排序

如何打印一组中同一级别的所有节点?

根据条件将具有不同级别的两行合并为R中的一行

按一组任意键分组,然后对字典列表中的任意一组不同键求和

如何在Python 3.6中根据需要打印一组嵌套列表

根据一组子字符串中的一个结尾对Python列表进行切片

使用Javascript根据总和对一组数字进行排序

根据另一组列对一组列进行排序

如何从不同级别的嵌套字典中提取和修改列表

使用python从具有不同级别的嵌套列表和字典的json中提取数据

如何为XML文档中不同级别的元素标识不同的xpath?

如何在 Swagger 中创建包含不同级别的不同对象的 API 定义?

如何使用Java流从一组对象中提取不同整数的排序列表?

如何在python中构造一组列表项?

如何在python中构造一组列表项?

如何根据条件对具有不同索引的python中的列表进行排序?

不同日志文件中不同级别的日志

Serilog 中不同级别的不同日志文件

如何计算R中int向量中不同级别的数量?

如何根据另一组列表过滤列表?

Powershell在一个选择对象中获取不同级别的节点值

在一个查询中聚合来自两个不同级别的信息

一个查询中的 SQL 不同级别的分组

如何使用Python根据一组可变条件过滤列表列表?