Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从对象列表创建OrderedICT列表_Python - Fatal编程技术网

Python 从对象列表创建OrderedICT列表

Python 从对象列表创建OrderedICT列表,python,Python,我有一个代码,其中我使用列表理解从对象列表创建了dict列表 示例代码: 如何将其更改为OrderedDict,因为我希望保持元素的顺序 我正在使用Python 2.7,这里有几个解决方案: version_info = [OrderedDict([("mnemonic": , v.mnemonic), ("unit", v.unit), ("value", v.value), ("description", v.descr)])

我有一个代码,其中我使用列表理解从对象列表创建了dict列表

示例代码:

如何将其更改为OrderedDict,因为我希望保持元素的顺序


我正在使用Python 2.7,这里有几个解决方案:

version_info = [OrderedDict([("mnemonic": , v.mnemonic), ("unit", v.unit),
                 ("value", v.value), ("description", v.descr)])
                for v in las.version]

两个版本都使用OrderedDict的基本构造函数,它接受成对的iterable。第一个版本是直接和硬编码的,第二个版本使用列表理解来根据属性名称列表选择值。

。。。使用订购的ICT?到底是什么问题?@juanpa.arrivillaga:你的意思是说OrderedDict构造函数?它会接受不止一个元素吗?你看过了吗?无论如何,OrdereDict构造函数的工作方式与dict构造函数完全相同,它接受一组键值对。不想让人讨厌,但如果你告诉我们你遇到的困难到底是什么,通常效果会更好。一般来说,我们假设您已经阅读了相关文档……不过,公平地说,文档似乎假设您会理解items意味着一个可编辑的键值对……此外,如果您可以切换到Python 3,Python>=3.7可以保证在普通dict对象中的插入顺序,因此您的代码将按编写的顺序工作。。。
version_info = [OrderedDict([("mnemonic": , v.mnemonic), ("unit", v.unit),
                 ("value", v.value), ("description", v.descr)])
                for v in las.version]
keys = ["mnemonic", "unit", "value", "description"]
attrs = keys[:-1] + ["descr"]
version_info = [OrderedDict([key, getattr(v, attr) for key, attr in zip(keys, attrs)])
                for v in las.version]