在本文中,将介绍如何在 Python 中实现两个列表减法操作。注意,两个列表的长度应相同,并且所有元素应具有相同的数据类型。
使用 zip() 函数将两个列表传递给 Zip 函数,使用 for 循环迭代 zip 对象。在每次迭代中,从 list1 和 list2 中各获取一个元素相减,将结果添加到另一个列表中。
list1 = [3, 6, 9]list2 = [1, 3, 8]result = []for i, j in zip(list1,list2): result.append(i - j)print(result) # 输出:[2, 3, 1]使用列表推导式遍历两个列表元素并对所有元素逐个执行减法操作。
# 方法 1list1 = [3, 6, 9]list2 = [1, 3, 8]result = [list1[i]-list2[i] for i in range(min(len(list1), len(list2)))]print(result) # 输出:[2, 3, 1]# 方法 2list1 = [3, 6, 9]list2 = [1, 3, 8]result = [x - y for x, y in zip(list1, list2)]print(result) # 输出:[2, 3, 1]Lambda 函数与 map() 函数list1 = [3, 6, 9]list2 = [1, 3, 8]result = list(map(lambda x, y: x-y, list1, list2))print(result) # 输出:[2, 3, 1]多个列表相减使用列表推导式,遍历多个列表元素并对所有元素逐个执行减法操作。
list1 = [3, 6, 9]list2 = [1, 3, 8]list3 = [1, 2, 3]result = [x - y - z for x, y, z in zip(list1, list2, list3)]print(result) # 输出:[1, 1, -2]使用 operator.sub() 方法使用 operator 模块执行减法的函数。operator.sub() 函数映射于两个列表的每对元素,从而创建可迭代对象,最后,将可迭代对象转换为列表。
import operatorlist1 = [3, 6, 9]list2 = [1, 3, 8]result = list(map(operator.sub, list1, list2))print(result) # 输出:[2, 3, 1]使用 enumerate()可以使用 enumerate() 函数,该函数允许迭代列表,同时访问索引和相应的元素。
list1 = [3, 6, 9]list2 = [1, 3, 8]result = [element - list2[i] for i, element in enumerate(list1)]print(result) # 输出:[2, 3, 1]使用 Numpy.subtract()可以使用 NumPy 库执行列表减法。将输入列表转换为 NumPy 数组,利用 subtract() 函数减去相应的元素,然后,将生成的数组转换回列表。
import numpy as nplist1 = [3, 6, 9]list2 = [1, 3, 8]array1 = np.array(list1)array2 = np.array(list2)sub_array = np.subtract(array1, array2)result = list(sub_array)print(result) 字符串列表相减list1 = ['a', 'b', 'c', 'd']list2 = ['b', 'd']result = [i for i in list1 if i not in list2]print(result) # 输出:['a', 'c']