每个元素都有功能的映射吗?

问题描述 投票:0回答:1

通常我会像这样处理元组的单个元素:

size, duration, name = some_external_function()
size = int(size)
duration = float(duration)
name = name.strip().lower()

如果some_external_function返回一些相等类型的元组,我可以使用map来获得一个(功能更多的)封闭表达式:

size, duration, name = map(magic, some_external_function())

是否有类似元素明智 map的东西?我可以像这样运行:

size, duration, name = map2((int, float, strip), some_external_function())

Update:我知道我可以与zip一起使用理解,例如

size, duration, name = [f(v) for f, v in zip(
   (int, float, str.strip), some_external_function())]

-我正在寻找'pythonic'(最佳:内置)解决方案!

python python-3.x functional-programming variable-assignment iterable-unpacking
1个回答
0
投票

我这样做的方式是使用要应用的函数定义一个单独的可迭代对象,然后将其应用于生成器理解函数中返回的非解压缩元组中:

© www.soinside.com 2019 - 2024. All rights reserved.