小编Zix*_*xle的帖子

如何制作一行生成器表达式来生成这两个不同的列表

我正在编写一个程序来解析这样的列表。

['ecl:gry', 'pid:860033327', 'eyr:2020', 'hcl:#fffffd', 'byr:1937', 'iyr:2017', 'cid:147', 'hgt:183cm']
Run Code Online (Sandbox Code Playgroud)

我想把这个列表变成我在这里完成的键值对的字典:

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)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用列表理解在这样的时间制作列表之一

keys = [s.split(':')[0] for s in data]
values = [s.split(':')[1] for s in data]
Run Code Online (Sandbox Code Playgroud)

这需要两个循环,所以第一个代码示例会更好,但是有没有办法使用一个生成器生成两个列表并解包,然后将两者压缩在一起?

python dictionary

3
推荐指数
1
解决办法
46
查看次数

标签 统计

dictionary ×1

python ×1