[英]Python dictionary comprehension with sets
我有一个函数返回一个集合:
我想创建一个dict理解,并使用该集合来填充字典键和值。 需要助手从函数获取值并使用它来填充键和值。
预期结果:
{ 52: [1, 2, 3, 4], 94: [3, 4, 5, 4]}
我有以下代码来简化示例:( 您可以忽略枚举)
from random import randint
a1 = [1,2,3]
b1 = [3,4,5]
l = [a1, b1]
def add_value(a):
return randint(0,100), a + [4]
d = {x: add_value(y) for x, y in enumerate(l, start=1)}
print d
现在d打印:
{1: (52, [1, 2, 3, 4]), 2: (94, [3, 4, 5, 4])}
我不明白您为什么使用enumerate
,因为您在这里不使用索引。
下面将使用函数返回的元组创建所需的字典:
d = dict(add_value(x) for x in l)
d = {x:y for x,y in [add_value(li) for li in l]}
应该管用。 在这种情况下,首先创建一个由add_value函数返回的元组列表,然后为该列表的每个项目解压缩元组,然后将key:value添加到字典中。
一定有更好的方法,但是您的问题要比第一眼看上去的要难。
你可以这样子做
d = {add_value(y)[0]:add_value(y)[1] for y in [a1,b1]}
要么
d = dict(add_value(y) for y in [a1,b1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.