python" multiple"结合/链表理解

时间:2013-05-20 15:54:29

标签: python python-2.7 itertools

我是python的新手,我一直在学习列表理解以及python列表和词典。

所以,我想做点什么:

[my_functiona(x) for x in a]

..完全正常。

但是,现在我想要做以下事情:

[my_functiona(x) for x in a] && [my_functionb(x) for x in a]

..有没有办法结合或链接这样的列表理解? - 第二个函数使用第一个列表的结果。简而言之,我希望将my_functionamy_functionb随后应用于列出a

我确实试过谷歌搜索 - 但找不到任何令人满意的东西。 对不起,如果这是一个愚蠢的101问题!

3 个答案:

答案 0 :(得分:6)

你可以编写像这样的函数

[my_functionb(my_functiona(x)) for x in a]

如果你需要申请条件,托马斯答案中的表格很有用

[my_functionb(y) for y in (my_functiona(x) for x in a) if y<10]

答案 1 :(得分:5)

你只是迭代第一次理解的结果:

def double(x):
    return x*2
def inc(x):
    return x+1

[double(x) for x in (inc(y) for y in range(10))]

我将内部理解作为生成器表达式,因为您不需要获取完整列表。

答案 2 :(得分:1)

[my_functiona(my_functionb(x)) for x in a]