我无法确定一种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]
有没有更友好读者的解决方案?提前感谢。
for
循环,从左到右:for x in a for y in b for z in c
。然而,map()
表明你正在寻找zip()
:for x, y, z in zip(a, b, c)
。 - Martijn Pieters