Python中的两个列表数值加法
作者:iFulling
这篇文章主要介绍了Python中的两个列表数值加法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python两个列表数值加法
任务:两个长度相同的数值型列表,对应元素相加构成新列表
1、利用 Python 原生的列表完成
list1 = [1, 3, 5] list2 = [2, 4, 6] list3 = [] for i in range(len(list2)): list3.append(list1[i] + list2[i]) print(list1) print(list2) print('两个列表相加得到的列表:') print(list3)
输出结果:
[1, 3, 5]
[2, 4, 6]
两个列表相加得到的列表:
[3, 7, 11]
2、利用 NumPy 提供的数组来实现算术运算
In [6]:import numpy as np In [7]:arr1 = np.array([1, 3, 5]) In [8]:arr2 = np.array([2, 4, 6]) In [9]:arr1 + arr2 Out[9]: array([ 3, 7, 11]) In [10]:arr1 - arr2 Out[10]: array([-1, -1, -1]) In [11]:arr1 * arr2 Out[11]: array([ 2, 12, 30]) In [12]:arr1 / arr2 Out[12]: array([0.5 , 0.75 , 0.83333333]) In [13]:arr1 // arr2 Out[13]: array([0, 0, 0], dtype=int32) In [14]:arr1 + 100 Out[14]: array([101, 103, 105]) In [15]:arr1 ** 2 Out[15]: array([ 1, 9, 25], dtype=int32)
Python中两个列表值求和
方法1
使用 operator.add() 方法和列表调用 map() 函数。
此种写法需要从 operator 模块导入 add() 方法。
operator.add 方法与 a + b 相同,所以仅适合两个列表使用,而且得到的结果还需要使用 list() 类将 map 对象转换为列表。
from operator import add list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = list(map(add, list1, list2)) print(list3)
运行结果:
方法2
使用zip函数并行迭代多个可迭代对象,使对应的对象生成一个元组,然后将每个元组传递给sum()函数获得总和。
这种方法适合两个或两个以上的列表。
①两个列表:
list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = list(zip(list1, list2)) print(list3) # ==print(list(zip(list1, list2))) list_3 = [sum(tup) for tup in zip(list1, list2)] print(list_3)
运行结果:
以此类推,多个列表时也是一样的写法。
②3个列表:
list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = [7, 8, 9] list4 = list(zip(list1, list2, list3)) print(list4)
运行结果:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。