Python 从列表中删除奇数元素
在Python中,列表是一种多用途的数据结构,允许您存储和操作项目的集合。可能有一些使用情况,您需要根据特定的标准从列表中删除特定的元素。在本教程中,我们将学习如何从Python列表中删除奇数元素。
使用for循环和remove()方法
这种方法是使用for循环来遍历列表的每个元素,并检查元素是奇数还是偶数,然后使用remove()方法从列表中删除它。
语法
remove()
remove(item)
参数
- 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]
- iterable: 可以是列表、集合、元组或任何Python可迭代对象。
-
element: 可迭代对象中的项目。
-
expression: 我们想要在元素上执行的操作。
说明
-
创建一个元素列表。
-
使用列表推导式遍历列表,并仅在不是奇数时将其添加到列表中。
示例
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()函数
filter()函数是Python中的一种内置函数,根据条件从可迭代对象中过滤元素,创建一个新的可迭代对象。它接受两个参数:定义条件的函数和需要被过滤的元素的可迭代对象。
语法
filter(function, iterable)
- iterable: 要应用指定函数的项目序列。
-
function: 我们要应用于迭代器中的项目的函数。
说明
-
创建一个元素列表。
-
我们将使用一个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)
- terable: 数组或元组,将转换为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库的高级过滤功能。