gpt4 book ai didi

python - 将两个列表合并为字典时保留顺序

转载 作者:太空狗 更新时间:2023-10-29 21:29:25 26 4
gpt4 key购买 nike

我正在使用 mysqldb 连接到 mysql 数据库,我在一个变量中获取元数据/列,在另一个变量中获取数据/行。现在我必须将列表和元组合并到字典中并保留顺序。我知道听写是无序的,但除此之外还有其他选择吗?

cursor.description = ['userid', 'cid', 'mid', 'did', 'msid']
data = (29L, 35L, None, '', None)

result = {}
for i in data:
result.update = dict(zip(cols, i))

预期结果

result = {'userid': 29L, 'cid': 35L, 'mid': None, 'did': '', 'msid': None}

最佳答案

使用 OrderedDict :

from collections import OrderedDict

result = OrderedDict(zip(cursor.description, data))

例子:

>>> from collections import OrderedDict
>>> cols = ['userid', 'cid', 'mid', 'did', 'msid']
>>> data = (29L, 35L, None, '', None)
>>> result = OrderedDict(zip(cols, data))
>>> result
OrderedDict([('userid', 29L), ('cid', 35L), ('mid', None), ('did', ''), ('msid', None)])
>>> result['userid']
29L
>>> result['cid']
35L
>>> list(result)
['userid', 'cid', 'mid', 'did', 'msid']

从 CPython 3.6 和 Python 3.7 开始,常规 dict 按插入顺序排序,因此您可以在此处使用 dict 而不是 OrderedDict 如果您知道您的代码将在合适的版本下运行。

仅限 Python 3.7+(或 CPython 下的 Python 3.6):

>>> cols = ['userid', 'cid', 'mid', 'did', 'msid']
>>> data = (29, 35, None, '', None)
>>> result = dict(zip(cols, data))
>>> result
{'userid': 29, 'cid': 35, 'mid': None, 'did': '', 'msid': None}
>>> result['userid']
29
>>> result['cid']
35
>>> list(result)
['userid', 'cid', 'mid', 'did', 'msid']

关于python - 将两个列表合并为字典时保留顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com