Python - 删除列表中的负面元素
有时,在使用Python列表时,我们可能会遇到需要从列表中删除所有负面元素的问题。这种问题可以在许多领域都有应用,例如学校编程和网络开发。让我们讨论可以执行此任务的某些方式。
Input : test_list = [6, 4, 3]
Output : [6, 4, 3]
Input : test_list = [-6, -4]
Output : []
方法#1:使用列表推导
上述功能的组合可以用来解决这个问题。在此,我们使用列表理解在一个衬里中通过迭代来执行删除否定元素的任务
# Python3 code to demonstrate working of
# Remove Negative Elements in List
# Using list comprehension
# initializing list
test_list = [5, 6, -3, -8, 9, 11, -12, 2]
# printing original list
print("The original list is : " + str(test_list))
# Remove Negative Elements in List
# Using list comprehension
res = [ele for ele in test_list if ele > 0]
# printing result
print("List after filtering : " + str(res))
输出 :
The original list is : [5, 6, -3, -8, 9, 11, -12, 2]
List after filtering : [5, 6, 9, 11, 2]
方法 #2:使用filter()
+ lambda
上述功能的组合也可以为这个问题提供替代方案。在此,我们扩展了使用 lambda函数形成的保留正数并使用 filter() 扩展的逻辑。
# Python3 code to demonstrate working of
# Remove Negative Elements in List
# Using filter() + lambda
# initializing list
test_list = [5, 6, -3, -8, 9, 11, -12, 2]
# printing original list
print("The original list is : " + str(test_list))
# Remove Negative Elements in List
# Using filter() + lambda
res = list(filter(lambda x : x > 0, test_list))
# printing result
print("List after filtering : " + str(res))
输出 :
The original list is : [5, 6, -3, -8, 9, 11, -12, 2]
List after filtering : [5, 6, 9, 11, 2]