首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python one liner用于从列表创建字典

python one liner用于从列表创建字典
EN

Stack Overflow用户
提问于 2018-06-26 06:51:52
回答 1查看 27关注 0票数 1

我正在学习字典理解,并写了下面的代码。列表‘like’的输出如下所示:

代码语言:javascript
复制
[['Color', 'Blue', 'Model', 'Ford'], ['Color', 'Green', 'Model', 'Honder'], ['Color', 'Pink', 'Model', 'peugeot']]

代码语言:javascript
复制
#!/Library/Frameworks/Python.framework/Versions/2.7/bin/python

import pprint
d={}

FILE='File.txt'
with open(FILE, 'r') as Data:

    lines = [line.split() for line in Data ]
    #print lines

    for x in lines:
        d[x[0]] = x[1]
        d[x[2]] = x[3]

        pprint.pprint(d)

基本上,我正在尝试弄清楚如何将上面的for循环转换为一行。

到目前为止,我尝试了以下代码:

代码语言:javascript
复制
e = {x[0]:x[1] for x in lines}

但这只会给我列表的最后一个条目。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-26 07:21:42

下面是一个使用第三种形式的dict constructor的干净的解决方案

代码语言:javascript
复制
>>> from itertools import izip
>>> l=[['Color', 'Blue', 'Model', 'Ford'], ['Color', 'Green', 'Model', 'Honder'], ['Color', 'Pink', 'Model', 'peugeot']]
>>> [dict(izip(d[::2], d[1::2])) for d in l]
[{'Color': 'Blue', 'Model': 'Ford'}, {'Color': 'Green', 'Model': 'Honder'}, {'Color': 'Pink', 'Model': 'peugeot'}]
>>>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51032758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档