我无法确定使用多个列表中的列表解析生成列表的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]
对于读者而言,是否有一个更友好的解决方案?提前谢谢。
答案 0 :(得分:5)
zip
函数可以将多个列表组合成一系列元组:
[Vmax - a_el + b_el + c_el for (a_el, b_el, c_el) in zip(a, b, c)]