能源系统建模 发表于 2020-7-21 21:08:30

关于两列表中数值的运算

如何将两个长度相等的列表中的数值按顺序一 一对应地相加?
类似于
A=
B=

怎么把1和4加,2和5加,依此类推
然后得到的结果也是一个列表


求大神指导

_2_ 发表于 2020-7-21 21:10:23

需要用到推导式

能源系统建模 发表于 2020-7-21 21:18:02

_2_ 发表于 2020-7-21 21:10
需要用到推导式

这样好像是把A中的数和B中的数都两两相加了一次
我想要只加对应位置上的数,就是A中的1只跟B中的4求和

Twilight6 发表于 2020-7-21 21:18:39

_2_ 发表于 2020-7-21 21:10
需要用到推导式


你用错了,这样即可:

A=
B=
print(+B for i in range(len(A))])

_2_ 发表于 2020-7-21 21:19:44

本帖最后由 _2_ 于 2020-7-21 21:25 编辑

能源系统建模 发表于 2020-7-21 21:18
这样好像是把A中的数和B中的数都两两相加了一次
我想要只加对应位置上的数,就是A中的1只跟B中的4求和

那也有
+ B for _ in range(len(A))]

_2_ 发表于 2020-7-21 21:21:14

Twilight6 发表于 2020-7-21 21:18
你用错了,这样即可:

没想到你看见了……
好吧,第一次确实错了

Twilight6 发表于 2020-7-21 21:24:31

_2_ 发表于 2020-7-21 21:19
那也有



你这改了和没改一样

_2_ 发表于 2020-7-21 21:26:23

Twilight6 发表于 2020-7-21 21:24
你这改了和没改一样

……{:10_266:}
为什么总是想着要用两个变量呢{:10_245:}

_2_ 发表于 2020-7-21 21:28:07

Twilight6 发表于 2020-7-21 21:24
你这改了和没改一样

在线丢人{:10_266:}

BIO-张磊 发表于 2020-7-21 21:33:18

本帖最后由 BIO-张磊 于 2020-7-21 21:34 编辑

原生python列表无法实现一一对应相加,可以通过for循环解决。
不过numpy库的array提供了对应加减乘除的方法
array就是数组,与list不同的是array的中的类型必须全部相同。你就记住array是numpy库处理数据的基本形式就可以了,不必深究
list可以通过numpy转化为array
import numpy as np
A=
B=
arrayA = np.array(A)
arrayB = np.array(B)
print(arrayA + arrayB)

list(arrayA + arrayB)

它比for循环的好处就是,numpy是经过优化的,速度会比单纯的for循环要快。

永恒的蓝色梦想 发表于 2020-7-21 21:48:08

list(map(sum, zip(a, b)))

永恒的蓝色梦想 发表于 2020-7-21 21:48:31

BIO-张磊 发表于 2020-7-21 21:33
原生python列表无法实现一一对应相加,可以通过for循环解决。
不过numpy库的array提供了对应加减乘除的方 ...

火箭轰蚊子。

BIO-张磊 发表于 2020-7-21 22:33:52

永恒的蓝色梦想 发表于 2020-7-21 21:48
火箭轰蚊子。

怎么说呢,假如这个列表是个多维的,比如二维,这个方法就显得特别灵活了
A=[,]
B=[,]
np.array(A)+np.array(B)
页: [1]
查看完整版本: 关于两列表中数值的运算