如何使用 Python 过滤以给定前缀开头的列表元素?
前缀一词由单词或字母的开头定义。在本文中,我们将学习如何使用 Python 内置函数,如 startswith()、filter()、lambda 和 len(),来使用 Python 过滤以给定前缀开头的列表元素。
让我们举个例子来理解这一点 -
Let’s take an example to understand this: Given element list, My_list = [“Amelia”, “Kinshuk”, “Rosy”, “Aman”] Keyword to be searched, Prefix = “Am” Final result = [“Amelia”, “Aman”]
语法
以下语法用于所有示例 -
startswith()
这是 Python 中的一个内置方法,如果字符串以特定值开头,则在满足给定条件时返回 true。
filter()
当我们需要根据特定条件过滤项目时,会应用 filter() 方法。简单来说,它允许用户迭代那些被提取以满足条件的元素。
lambda
Python 中的这个 lambda 函数被称为匿名函数。当需要函数对象时可以使用它。
len()
这是 Python 中的一个内置方法,它返回对象中存在的项目的长度。
使用列表推导式
该程序使用列表推导式,借助名为 startswith() 的方法,该方法可用于从列表中过滤前缀元素。
示例
在下面的示例中,我们将使用列表推导式在名为 prefix_list_element_filter() 的函数的 return 语句中,该函数将使用 for 循环迭代列表值,并使用 startswith() 检查前缀。for 循环和 if 语句在一个地方的组合称为列表推导式。然后在变量 my_list 中创建列表。继续设置调用函数,该函数传递参数 - my_list(存储列表值)和 Am(前缀)以处理以给定前缀开头的列表元素的过滤。最后,我们使用变量 filter_list 打印结果。
def prefix_list_element_filter(lst, prefix):
return [item for item in lst if item.startswith(prefix)]
# Create the list
my_list = ["Amar", "Bunny", "Aman", "Ganesh", "Rajendra"]
filter_list = prefix_list_element_filter(my_list, "Am")
print("The given element start with prefix:", filter_list)
输出
The given element start with prefix: ['Amar', 'Aman']
使用 for 循环
该程序使用 for 循环迭代给定的列表,并使用 startswith() 检查前缀。然后它将使用一个空列表,该列表通过使用名为 append() 的内置方法存储过滤后的前缀元素。
示例
在下面的示例中,我们将首先使用 def 关键字定义函数来启动程序,该函数接受两个参数 - lst(接收列表值)和 prefix(接收前缀关键字)。接下来,它将使用 for 循环迭代列表,然后使用 startswith() 设置前缀,该前缀接受参数 prefix(从函数接收的值)。然后使用名为 append() 的方法,该方法将过滤后的列表元素添加到变量 filtered_list 中并返回以获取结果。现在在变量 fruit_list 中创建列表。然后使用调用函数将列表值和前缀的参数传递到变量 filter_list 中。最后,使用名为 filter_list 的变量打印结果。
def prefix_list_element_filter(lst, prefix):
filtered_list = []
for item in lst:
if item.startswith(prefix):
filtered_list.append(item)
return filtered_list
# Create the list
fruit_list = ["apple", "banana", "avocado", "blue berry", "kiwi"]
filter_list = prefix_list_element_filter(fruit_list, "b")
print("The given element start with prefix:\n", filter_list)
输出
The given element start with prefix: ['banana', 'blue berry']
使用 Filter() 函数
该程序使用 filter() 来识别特定的前缀,并使用 lambda 来使用名为 startswith() 的方法设置前缀,该方法可用于过滤特定的前缀。
示例
在下面的示例中,使用 def 关键字开始使用函数,该函数接受两个参数 - lst(接收列表值)和 prefix(接收特定的关键字搜索),该函数将根据项目是否以给定前缀开头来过滤项目列表。此函数通过使用一些内置函数(如 list()、filter()、lambda 和 startswith())返回带有前缀的结果。然后创建列表以在变量 course_list 中存储字符串值。接下来,使用函数调用将值 - course_list 和 “bc” 传递到变量 filter_list 中。现在使用 print 函数设置名为 filter_list 的变量以获取结果。
def prefix_list_element_filter(lst, prefix):
return list(filter(lambda item: item.startswith(prefix), lst))
# Create the list
course_list = ["dca", "bca", "bcom", "MCA", "pgdca"]
filter_list = prefix_list_element_filter(course_list, "bc")
print("The given element start with prefix:\n", filter_list)
输出
The given element start with prefix: ['bca', 'bcom']
使用带条件表达式的列表推导式
该程序使用一个函数,该函数返回列表推导式,并设置一些条件表达式,该表达式可用于过滤以给定前缀开头的列表元素。
示例
在下面的示例中,开始使用函数 filter_list_elements_prefix(),该函数接受两个参数 - lst(存储列表)和 prefix(在函数调用期间接收特定的前缀)。此函数通过使用列表推导式返回新列表,即表达式 item[:len(prefix)] 获取 lst 中每个项目的从开头到前缀长度的切片,并将其与前缀进行比较。如果它们相等,则该项目将包含在新列表中。接下来,创建列表以在变量 my_list 中存储一些字符串值。然后初始化变量 filter_list,该变量存储与函数(上面提到的)相同的名称,以传递列表和前缀的值。最后,在 print 函数中使用变量 filter_list 以获取结果。
def filter_list_elements_prefix(lst, prefix):
return [item for item in lst if item[:len(prefix)] == prefix]
# Create the list
my_list = ["tea", "coffee", "cheese", "teaspoon", "sugar"]
filter_list = filter_list_elements_prefix(my_list, "tea")
print("The given element start with prefix:\n", filter_list)
输出
The given element start with prefix: ['tea', 'teaspoon']
结论
我们讨论了各种解决问题陈述的方法,这些方法可以过滤以给定前缀开头的元素。有一些内置函数,如 startswith()、append() 和 len(),可用于过滤前缀并根据给定条件返回结果。此程序涉及现实生活中的示例,例如多个人的姓名列表,可以通过特定前缀进行搜索。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP