所以,基本上我有一些返回tuples
的函数。基本上是以下形式:
def function():
return (thing, other_thing)
我希望能够以一种简单的方式将这些功能中的几个添加到一起,如下所示:
def use_results(*args):
"""
Each arg is a function like the one above
"""
results = [test() for test in args]
things = magic_function(results)
other_things = magic_function(results)
基本上我有数据结构:
[([item_1, item_1], [item_2, item_2]), ([item_3, item_3], [item_4, item_4])]
我想把它变成:
[[item_1, item_1, item_3, item_3], [item_2, item_2, item_4, item_4]]
似乎可能是zip
和*
组合使用这种方式的好方法,但它并不适合我。
答案 0 :(得分:3)
哦,我觉得有点傻。在发布问题后我很快找到了答案。我会继续保持这种情况,以防有更好的解决方案:
>>> import operator
>>> results = [([1,1], [2,2]), ([3,3], [4,4])]
>>> map(operator.add, *results)
[[1, 1, 3, 3], [2, 2, 4, 4]]
答案 1 :(得分:2)
不导入任何模块,只需内置方法:
>>> results = [([1,1], [2,2]), ([3,3], [4,4])]
>>> [x+y for x,y in zip(*results)]
[[1, 1, 3, 3], [2, 2, 4, 4]]
或者甚至这样:
>>> map(lambda s,t:s+t, *results)