连接列表来自多个函数

时间:2015-07-13 22:14:10

标签: python data-structures

所以,基本上我有一些返回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*组合使用这种方式的好方法,但它并不适合我。

2 个答案:

答案 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)