码住!Python 列表玩减法,同长同型是关键

360影视 2025-01-07 08:28 2

摘要: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]

在本文中,将介绍如何在 Python 中实现两个列表减法操作。注意,两个列表的长度应相同,并且所有元素应具有相同的数据类型。

将两个列表传递给 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]

使用列表推导式,遍历多个列表元素并对所有元素逐个执行减法操作。

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 模块执行减法的函数。operator.sub 函数映射于两个列表的每对元素,从而创建可迭代对象,最后,将可迭代对象转换为列表。

import operatorlist1 = [3, 6, 9]list2 = [1, 3, 8]result = list(map(operator.sub, list1, list2))print(result) # 输出:[2, 3, 1]

可以使用 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 库执行列表减法。将输入列表转换为 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']

来源:信息科技云课堂

相关推荐