gpt4 book ai didi

python - 这里可以理解吗?

转载 作者:行者123 更新时间:2023-11-28 20:07:31 24 4
gpt4 key购买 nike

我有一个元组列表:

l=[('soccer',11),('tennis',2),('chess',2),('xanadu',None)]

假设我们定义一个函数如下:

def func(x):
if type(x) is int:
return x*2
else:
return None

我需要将此函数应用于每个元组的元素 [1],并将结果作为以元素 [0] 为键的字典返回。

这可能是对列表“l”的理解吗?
只是为了让事情变得有点有趣——我只需要包括那些 func(x) 返回 int 的结果。

预期输出:

{'soccer':22,'tennis':4,'chess':4}

最佳答案

是的,元组扩展相当容易

dict([(x, func(y)) for x, y in l])

或者一次完成所有事情(2.7+)

{x: func(y) for x, y in l if isinstance(func(y), int)}

如果 func 很昂贵并且您不想计算两次,您可以(但如果它像您的示例一样简单,我不会打扰)

{key: value for key, value in ((x, func(y)) for x, y in l) if isinstance(value, int)}

或 python 2.6.x

dict((key, value) for key, value in ((x, func(y)) for x, y in l) if isinstance(value, int))

正如 Nisan.H 评论的那样,这变得有点不清楚,所以为了清楚起见,将其分成两行

func_l = ((x, func(y)) for x, y in l)
result = dict((key, value) for key, value in func_l if isinstance(value, int))

关于python - 这里可以理解吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com