【问题标题】:Convert list of tuples with 3 elements into ordered dictionary [duplicate]将具有 3 个元素的元组列表转换为有序字典 [重复]
【发布时间】:2017-11-08 00:56:52
【问题描述】:

我有包含 3 个元素的元组列表。我想将其转换为保留顺序的字典。

>>> a = [('one', '0', '1'), ('two', '0', '0'), ('three', '1', '1')]
>>> x = OrderedDict({sb[0]: sb[1:] for sb in a})
>>> x
OrderedDict([('three', ('1', '1')), ('two', ('0', '0')), ('one', ('0', '1'))])

我看到订单发生了变化,不知道为什么。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: python python-2.7 ordereddictionary


    【解决方案1】:
    ...{...}..
    

    哎呀。

    OrderedDict(((sb[0], sb[1:]) for sb in a))
    

    【讨论】:

    • 你不需要一组这些括号;当函数(或在这种情况下为构造函数)的唯一参数是一个genexpr 时,调用parens 是geneexpr parens 的两倍,所以这工作正常:OrderedDict((sb[0], sb[1:]) for sb in a)。重要的部分是删除{}(使其成为dict 理解),因为如果你先创建dict,你已经失去了订单,所以OrderedDict 无法恢复它。跨度>
    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多