通常我会像这样处理元组的单个元素:
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'(最佳:内置)解决方案!
我这样做的方式是使用要应用的函数定义一个单独的可迭代对象,然后将其应用于生成器理解函数中返回的非解压缩元组中: