如何将列表转换为多值字典

时间:2017-02-19 00:08:56

标签: python dictionary

我有一个列表列表,我想将其转换为4值字典,其中每个列表中的第一个值是键。例如,列表将是:

[['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]

我希望它是

{"267-10-7633":[66,85,74,0], "709-40-8165", [71,96,34,0] }

6 个答案:

答案 0 :(得分:3)

您可以使用词典理解:

10:00 AM

如果您使用的是python2,似乎您无法使用lst = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]] {k: v for k, *v in lst} # {'267-10-7633': ['66', '85', '74', 0], '709-40-8165': ['71', '96', '34', 0]} 来解压缩多个元素:

*v

这里没有关注类型转换。我想你可以参考其他答案来了解如何做到这一点。

答案 1 :(得分:1)

dict理解,使用list理解来编译字典,将字符串转换为int

> lst = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]
> {l[0]: [int(x) for x in l[1:]] for l in lst}
{'267-10-7633': [66, 85, 74, 0], '709-40-8165': [71, 96, 34, 0]}

答案 2 :(得分:0)

简单直接的解决方案。

<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

答案 3 :(得分:0)

列表推导在这种情况下是合适的

{element[0]: [int(x) for x in element[1:]] for element in\
    [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]}

答案 4 :(得分:0)

一种简单的方法:

your_list = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]

dictionary = {}
for item in your_list:
    dictionary[item[0]] = [int(i) for i in item[1:]]

print(dictionary) 

listdict理解:

dictionary = {item[0]: [int(i) for i in item[1:]] for item in your_list}
print(dictionary)

在这两种情况下,输出:

{'267-10-7633': [66, 85, 74, 0], '709-40-8165': [71, 96, 34, 0]}

答案 5 :(得分:0)

ll = [['267-10-7633', '66', '85', '74', 0], ['709-40-8165', '71', '96', '34', 0]]

mydict = {}
for item in ll:
  key,*values = item
  mydict[key] = values

print(mydict)