Python中文
首页
教程
问答
标签
搜索
登录
注册
如何生成一个单行生成器表达式来生成这两个不同的列表
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在写一个程序来解析这样的列表</p> <pre><code>['ecl:gry', 'pid:860033327', 'eyr:2020', 'hcl:#fffffd', 'byr:1937', 'iyr:2017', 'cid:147', 'hgt:183cm'] </code></pre> <p>我想把这个列表变成一个键值对字典,我在这里做过:</p> <pre><code>keys = [] values = [] for string in data: pair = string.split(':') keys.append(pair[0]) values.append(pair[1]) zipped = zip(keys, values) self.dic = dict(zipped) print(self.dic) </code></pre> <p>我知道我可以使用列表理解在这样的时间制作一个列表</p> <pre><code>keys = [s.split(':')[0] for s in data] values = [s.split(':')[1] for s in data] </code></pre> <p>这需要两个循环,所以第一个代码示例会更好,但是有没有一种方法可以使用一个带解包的生成器生成两个列表,然后将它们压缩在一起</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你可以很容易地听写它:</p> <pre><code>your_dict = {x.split(':')[0]: x.split(':')[1] for x in data} </code></pre> <p>您还可以防止使用拆分两次并使用生成器:</p> <pre><code>your_dict = dict(x.split(':') for x in data) </code></pre> <p>看起来更干净</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
VirtualEnvRapper错误:路径python2(来自python=python2)不存在
8 回答
virtualenvs上的pyinstaller,没有名为导入错误的模块
6 回答
virtualenvs是否可以退回到用户包而不是系统包?
4 回答
virtualenvwrapper CentOS7
4 回答
virtualenvwrapper IOError:[Errno 13]权限被拒绝
2 回答
virtualenvwrapper mkproject和shell在windows中的启动问题?
8 回答
virtualenvwrapper mkvirtualenv不工作但没有错误
9 回答
Virtualenvwrapper python bash
6 回答
virtualenvwrapper:“workon”何时更改到项目目录?
7 回答
virtualenvwrapper:mkvirtualenv可以工作,但是rmvirtualenv返回bash:没有这样的文件或目录
10 回答
virtualenvwrapper:virtualenv信息存储在哪里?
5 回答
virtualenvwrapper:命令“python设置.pyegg_info“失败,错误代码为1
3 回答
virtualenvwrapper:如何将mkvirtualenv的默认Python版本/路径更改为ins
9 回答
Virtualenvwrapper:模块“pkg_resources”没有属性“iter_entry_points”
6 回答
Virtualenvwrapper:没有名为virtualenvwrapp的模块
9 回答
Virtualenvwrapper.bash_profi的正确设置
2 回答
Virtualenvwrapper.hook:权限被拒绝
3 回答
virtualenvwrapper.sh:fork:资源暂时不可用Python/Djang
8 回答
Virtualenvwrapper.shlssitepackages命令不工作
8 回答
Virtualenvwrapper.sh函数在bash sh中不可用
7 回答