📜  Python - 保留所有 K 元素行

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

Python - 保留所有 K 元素行

有时,在使用Python列表时,我们可能会遇到一个问题,即我们需要保留只有 K 作为元素的行。这种应用可以发生在以矩阵为输入的数据域中。让我们讨论可以执行此任务的某些方式。

方法 #1:使用列表理解 + any()
上述功能的组合提供了一种可以执行此任务的方式。在此,我们使用 any() 执行过滤掉具有除 K 以外的任何元素的行的任务。

# Python3 code to demonstrate working of 
# Retain all K elements Rows
# Using list comprehension + any()
  
# initializing list
test_list = [[2, 4, 6], [2, 2, 2], [2, 3], [2, 2]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K 
K = 2
  
# Retain all K elements Rows
# Using list comprehension + any()
res = [ele for ele in test_list if not any(el != K for el in ele)]
  
# printing result 
print("Matrix after filtering : " + str(res))
输出 :
The original list : [[2, 4, 6], [2, 2, 2], [2, 3], [2, 2]]
Matrix after filtering : [[2, 2, 2], [2, 2]]

方法 #2:使用列表理解 + all()
上述功能的组合可以用来解决这个问题。在此,我们使用 all() 检查行的所有元素是否等于 K。

# Python3 code to demonstrate working of 
# Retain all K elements Rows
# Using list comprehension + all()
  
# initializing list
test_list = [[2, 4, 6], [2, 2, 2], [2, 3], [2, 2]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K 
K = 2
  
# Retain all K elements Rows
# Using list comprehension + all()
res = [ele for ele in test_list if all(el == K for el in ele)]
  
# printing result 
print("Matrix after filtering : " + str(res))
输出 :
The original list : [[2, 4, 6], [2, 2, 2], [2, 3], [2, 2]]
Matrix after filtering : [[2, 2, 2], [2, 2]]