📜  Python – 如果所有元素都等于 N,则删除该行

📅  最后修改于: 2022-05-13 01:54:42.261000             🧑  作者: Mango

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]]