Python – 如果所有元素都等于 N,则删除该行
有时,在处理数据时,尤其是在机器学习领域,我们需要处理大量相似的 N 等数据。我们有时需要删除所有等于 N 的行。让我们讨论一些删除所有 N 值作为列表列的行的方法。
方法 #1:使用列表理解 + count() + len()
我们可以使用列表理解配方来执行这个特定的任务,结合 len 和 count函数来检查与列表长度相等的相似性元素计数器。
# Python3 code to demonstrate
# N row deletion in Matrix
# using list comprehension + count() + len()
# initializing matrix
test_list = [[1, 4, 2], [False, 9, 3],
[6, 6, 6], [1, 0, 1]]
# printing original list
print("The original list : " + str(test_list))
# initializing N
N = 6
# using list comprehension + count() + len()
# N row deletion in Matrix
res = [sub for sub in test_list if sub.count(N) != len(sub)]
# print result
print("The list after removal of N rows : " + str(res))
输出 :
The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]
方法 #2:使用列表理解 + set()
也可以通过将整行转换为一个集合,然后检查单个值 N 集合是否相等并在找到匹配项时删除来执行此特定任务。
# Python3 code to demonstrate
# N row deletion in Matrix
# using list comprehension + set()
# initializing matrix
test_list = [[1, 4, 2], [False, 9, 3],
[6, 6, 6], [1, 0, 1]]
# printing original list
print("The original list : " + str(test_list))
# initializing N
N = 6
# using list comprehension + set()
# N row deletion in Matrix
res = [sub for sub in test_list if set(sub) != {N}]
# print result
print("The list after removal of N rows : " + str(res))
输出 :
The original list : [[1, 4, 2], [False, 9, 3], [6, 6, 6], [1, 0, 1]]
The list after removal of N rows : [[1, 4, 2], [False, 9, 3], [1, 0, 1]]