原代码:
list = [1, 3, 7, 8, 10]
ele = 2
print(list + ele)
报错是因为两边类型不一致,一个是list,一个是int型。就算类型相同,也是list长度一致才能相加。
解决方案:
1、用for循环给每一个元素分别赋值:
print([x + ele for x in list])
[3, 5, 9, 10, 12]
这个方法的问题是如果在计算式中看起来比较繁琐不太简洁。
2、新建一个与list大小相同的list,其中每个元素都是需要相加的元素:
print(list + np.ones(np.shape(list)) * ele)
[ 3. 5. 9. 10. 12.]
这个方法的问题是得到的结果已经不是list了,而是相同大小的数组。
3、先将这个list转换为数组,再相加:
print(np.array(list) + ele)
[ 3 5 9 10 12]
问题同上一种方法。如果非要list类型,再用.tolist()转回来即可:
print((np.array(list) + ele).tolist())
注意:
不能直接在int两边加上括号把要相加的元素转成list,输出结果会有问题:
print(list + [ele])
[1, 3, 7, 8, 10, 2]
本文探讨了在Python中尝试将列表与整数直接相加导致的类型错误,并提供了三种有效的解决方案:使用for循环逐元素相加、利用NumPy数组进行操作并转换回列表,以及创建与原列表等长的全为指定整数的列表再相加。每种方法都有其适用场景和局限性。
3293

被折叠的 条评论
为什么被折叠?



