使用多个列表列出理解

时间:2016-10-14 17:56:02

标签: python list

我无法确定使用多个列表中的列表解析生成列表的Pythonic方法。我正在尝试生成一个实现以下功能的列表:

vbat = Vmax - a + b + c

其中Vmax是常数,但a,b和c是列表。我希望我能做一些像这样容易阅读的东西:

vbat = [Vmax - x + y + z for x in a and y in b and z in c]

我知道我可以使用map运算符创建一个新的组合列表,然后在新列表中使用列表理解,但它看起来有点难看且难以阅读。我知道可以使用的代码如下所示:

newlist = map(sub,map(add,b,c),a)
vbat = [Vmax + x for x in newlist]

对于读者而言,是否有一个更友好的解决方案?提前谢谢。

1 个答案:

答案 0 :(得分:5)

zip函数可以将多个列表组合成一系列元组:

[Vmax - a_el + b_el + c_el for (a_el, b_el, c_el) in zip(a, b, c)]