我是python的新手,我一直在学习列表理解以及python列表和词典。
所以,我想做点什么:
[my_functiona(x) for x in a]
..完全正常。
但是,现在我想要做以下事情:
[my_functiona(x) for x in a] && [my_functionb(x) for x in a]
..有没有办法结合或链接这样的列表理解? - 第二个函数使用第一个列表的结果。简而言之,我希望将my_functiona
和my_functionb
随后应用于列出a
我确实试过谷歌搜索 - 但找不到任何令人满意的东西。 对不起,如果这是一个愚蠢的101问题!
答案 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]