Python:集合计算问题TypeError: can only concatenate tuple (not “int“) to tuple/list,将集合转换成数组后成功解决

问题重现:

一般来说,我们习惯将数据直接保存到集合中,例如用python绘制各种折线图的时候,但是如果后续想再对他们进行计算的时候,例如将两个集合对应相乘再求和,就会出现一些小问题,如图:

 

 问题很小,很容易解决。

问题根源:

不能直接将列表和列表进行相乘,因为他们不是数字类型的,所以想要对他们进行计算,只需要将他们转换成数组即可。

解决办法:

使用np.multiply函数将集合转换成数组。

import numpy as np
a = [1, 2, -2, 4, 2, 3, 1, 0]
b = [2, 3, -2, 3, 2, 4, 1, -1]
corr_ab = np.multiply(np.array(a), np.array(b))
corr_ac = np.multiply(np.array(a), np.array(c))

print(corr_ab)
print(corr_ac)

但是到后来小白突然又发现,np.multiply这个函数能自动将集合准换成数组,所以无需加上np.array()对集合进行转换,所以最终代码为:

import numpy as np

a = [1, 2, -2, 4, 2, 3, 1, 0]
b = [2, 3, -2, 3, 2, 4, 1, -1]
corr_ab = np.multiply(a, b)
corr_ac = np.multiply(a, c)

print(corr_ab)
print(corr_ac)

最终两个集合相乘的结果仍会以数组的形式存在,想要求和,只需要在得到的数组上再使用一个sum函数即可。

基础不牢,地动山摇;

在此分享,共同进步。


版权声明:本文为m0_58405041原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。