我有一个返回集合的函数:
我想创建一个dict理解并使用该set来填充字典键和值。需要助手从函数中获取值并使用它来填充键和值。
预期结果:
{ 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
现在打印:
{1: (52, [1, 2, 3, 4]), 2: (94, [3, 4, 5, 4])}
答案 0 :(得分:1)
我不明白你为什么要使用enumerate
,因为你不在这里使用索引。
以下内容将使用函数返回的元组创建所需的字典:
d = dict(add_value(x) for x in l)
答案 1 :(得分:0)
你可以这样做
d = {add_value(y)[0]:add_value(y)[1] for y in [a1,b1]}
或
d = dict(add_value(y) for y in [a1,b1])
答案 2 :(得分:0)
d = {x:y for x,y in [add_value(li) for li in l]}
应该有效。 在这种情况下,首先创建函数add_value返回的元组列表,然后对于此列表的每个项目,解压缩元组,并将key:value添加到字典中。
必须有更好的方法,但你的问题比第一种观点看起来更难。