python 多个列表对应位置元素求和
本以为这是个非常简单的问题,没想到也会出错。如果我们想实现: [1,2,3]+[4,5,6]=[5,7,9]该怎么做呢?我自然想到直接相加,但这样是错误的:print([1,2,3]+[4,5,6])# [1, 2, 3, 4, 5, 6]可以发现,两个列表直接相加相当于 append,而不是我们想要的对应位置元素相加。要想实现对应位置元素相加,应该这样写:a = [1, 2, 3]b = [4,
·
本以为这是个非常简单的问题,没想到也会出错。
如果我们想实现: [1,2,3]+[4,5,6]=[5,7,9] 该怎么做呢?
我自然想到直接相加,但这样是错误的:
print([1,2,3]+[4,5,6]) # [1, 2, 3, 4, 5, 6]
可以发现,两个列表直接相加相当于 append,而不是我们想要的对应位置元素相加。
同样的问题也发生在列表元素同时乘以同一个数,如想对 [1,2,3] 同时乘以3,直接 [1,2,3]*3 得到的并不是 [3,6,9]
print([1,2,3]*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
正确的做法应该是:
a=[1,2,3]
print([3*i for i in a]) # [3, 6, 9]
要想实现对应位置元素相加,应该这样写:
a = [1, 2, 3]
b = [4, 5, 6]
result = [i + j for i, j in zip(a, b)]
print(result) # [5, 7, 9]
以此类推,更多的列表也可以相加:
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
result = [i + j + k for i, j, k in zip(a, b, c)]
print(result) # [12, 15, 18]
更多推荐
已为社区贡献3条内容
所有评论(0)