Python 列表中移除奇数元素


在 Python 中,列表是一种通用的数据结构,允许你存储和操作项目的集合。可能有一些用例需要根据某些条件从列表中删除特定元素。在本教程中,我们将学习如何在 Python 中从列表中删除奇数元素。

使用 For 循环和 remove() 方法

这种方法是使用 for 循环迭代列表的每个元素,并检查元素是奇数还是偶数,然后使用 remove() 方法将其从列表中删除。

语法

remove()

remove(item)

参数

  • 项目:要从列表中移除的项目。

解释

  • 创建一个包含奇数和偶数组合的列表。

  • 使用 for 循环迭代整个列表。

  • 对于每个元素,检查它是奇数还是偶数。

  • 如果数字是奇数,则使用 remove() 方法将其从列表中删除。

示例

arr = [1, 2, 3, 4, 5, 6]
print("Original List : ",arr)
for i in arr:
    # checking if the number is odd number
    if(i%2==1):
        # removing from the list.
        arr.remove(i)
print("List after odd elements removed : ",arr)

输出

Original List :  [1, 2, 3, 4, 5, 6]
List after odd elements removed :  [2 4 6]

使用列表推导式

列表推导式提供了一种迭代元素列表并执行检查以验证元素是奇数还是偶数的方法。

语法

[expression for element in iterable]
  • 可迭代对象:它可以是列表、集合、元组或任何 Python 可迭代对象。

  • 元素:可迭代对象中存在的项目。

  • 表达式:我们要对元素执行的操作。

解释

  • 创建一个元素列表。

  • 使用列表推导式迭代列表,只有当它不是奇数时才将其添加到列表中。

示例

arr = [1, 2, 3, 4, 5, 6]

print("Original List : ",arr)

arr = [i for i in arr if i%2==0]

print("List after odd elements removed : ",arr)

输出

Original List :  [1, 2, 3, 4, 5, 6]
List after odd elements removed :  [2 4 6]

使用 filter() 函数

Python 中的 filter() 函数是一个内置函数,它通过根据条件过滤可迭代对象的元素来创建一个新的可迭代对象。它接受两个参数:一个定义条件的函数和一个包含要过滤的元素的可迭代对象。

语法

filter(function, iterable)
  • 可迭代对象:将应用指定函数的项目序列。

  • 函数:我们要应用于迭代器中项目的函数。

解释

  • 创建一个元素列表。

  • 我们将使用 lambda 函数来检查元素是奇数还是偶数。

  • 将上述 lambda 函数和列表传递给 filter 方法。

  • filter 方法将返回一个可迭代对象,使用 list() 方法将其转换为列表。

示例

arr = [1, 2, 3, 4, 5, 6]

print("Original List : ",arr)

arr = list(filter(lambda i: i % 2 == 0, arr))

print("List after odd elements removed : ",arr)

输出

Original List :  [1, 2, 3, 4, 5, 6]
List after odd elements removed :  [2 4 6]

使用 NumPy

NumPy 数组具有高级过滤功能。NumPy 数组可以应用布尔掩码,具有 True 的元素将被保留,其他元素将被移除。在这种情况下,为了获得布尔掩码数组,只需将数组除以 2,它将返回一个布尔数组,指示哪些元素是偶数,哪些是奇数。

语法

NumPy 中的 np.array() 函数用于根据可迭代对象创建一个新的 NumPy 数组。

numpy.array(iterable)
  • 可迭代对象:要转换为 NumPy 数组的列表或元组。

解释

  • 创建一个元素列表,并使用 numpy.array() 将其转换为 NumPy 数组。

  • 通过将 NumPy 数组除以 2 来创建一个布尔掩码数组。

  • 现在将创建的布尔数组作为索引传递给 NumPy 数组,这将只返回偶数。

示例

import numpy as np
arr = [1, 2, 3, 4, 5, 6]

print("Original List : ",arr)

arr = np.array(arr)
arr = arr[arr % 2 == 0]

print("List after odd elements removed : ",arr)

输出

Original List :  [1, 2, 3, 4, 5, 6]
List after odd elements removed :  [2 4 6]

结论

在本教程中,我们探索了从列表中删除奇数元素的多种方法,包括列表推导式、循环、filter 函数和 NumPy 库的高级过滤功能。

更新于: 2023年8月9日

4K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.