📜  Python|从后面开始的第 K 个非无字符串

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

Python|从后面开始的第 K 个非无字符串

有时在处理数据科学时,我们需要处理大量数据,因此我们可能需要速记来执行某些任务。我们在预处理阶段处理 Null 值,因此有时需要从后面检查第 K 个有效元素。让我们讨论一些可以从后面找到第 K 个非空字符串的方法。

方法 #1:使用next() + 列表推导
下一个函数返回迭代器,因此它比传统的列表推导更有效,逻辑部分使用检查最后一个 None 值的列表推导来处理。后面部分是通过反转列表来处理的。

# Python3 code to demonstrate
# Kth Non-None String from Rear
# using next() + list comprehension
  
# initializing list
test_list = ["", "", "Akshat", "Nikhil"]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K 
K = 2
  
# using next() + list comprehension
# Kth Non-None String from Rear
test_list.reverse()
test_list = iter(test_list)
for idx in range(0, K):
    res = next(sub for sub in test_list if sub)
  
# printing result
print("The Kth non empty string from rear is : " + str(res))
输出 :
The original list : ['', '', 'Akshat', 'Nikhil']
The Kth non empty string from rear is : Akshat

方法 #2:使用filter()
filter函数可用于查找非空字符串,并返回 -Kth 索引以获取其中的最后一个 Kth字符串。仅适用于Python 2。

# Python code to demonstrate
# Kth Non-None String from Rear
# using filter()
  
# initializing list
test_list = ["", "", "Akshat", "Nikhil"]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing K 
K = 2
  
# using filter()
# Kth Non-None String from Rear
res = filter(None, test_list)[-K]
  
# printing result
print("The Kth non empty string from rear is : " + str(res))
输出 :
The original list : ['', '', 'Akshat', 'Nikhil']
The Kth non empty string from rear is : Akshat