【问题标题】:Create dictionary from list python从列表 python 创建字典
【发布时间】:2013-06-04 23:56:04
【问题描述】:

我有很多这种格式的列表:

['1', 'O1', '', '', '', '0.0000', '0.0000', '', '']
['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']
['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']

我需要创建一个字典,其中键作为列表中的第一个元素,值作为整个列表。没有一个键是重复的。 最好的方法是什么?

【问题讨论】:

    标签: python list dictionary


    【解决方案1】:
    >>> lists = [['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''],
    ['2', 'AP', '', '', '', '35.0000', '105.0000', '', ''],
    ['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']]
    >>> {x[0]: x for x in lists}
    {'1': ['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''], '3': ['3', 'EU', '', '', '', '47.0000', '8.0000', '', ''], '2': ['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']}
    

    【讨论】:

    • 但是如果我需要为每个列表制作一个单独的字典并且我不想合并列表,我会怎么做?
    • @wannabe_geek 你必须以某种方式保留你的列表。将它们全部放在一个列表中是最简单的方法。如果需要,您可以使用其他东西,例如链表。您的输出遵循相同的规则。你必须把它保存在某个地方。字典是最好的选择。
    【解决方案2】:

    将所有列表放入另一个列表并执行以下操作:

    my_dict = {}
    for list in lists:
      my_dict[list[0]] = list[:]
    

    这基本上是获取第一个元素并将其作为键放入my_dict,并将列表作为值。

    【讨论】:

      【解决方案3】:

      如果您的索引是连续整数,您可以使用列表而不是字典:

      lst = [None]+[x[1:] for x in sorted(lists)]
      

      只有当它真的适合你的问题时才使用它。

      【讨论】:

        猜你喜欢
        • 2020-11-17
        • 2018-04-27
        • 1970-01-01
        • 1970-01-01
        • 2017-05-05
        • 2013-10-26
        • 2023-02-07
        • 2019-06-02
        • 1970-01-01
        相关资源
        最近更新 更多