Python 如何筛选以给定前缀开头的列表元素

Python 如何筛选以给定前缀开头的列表元素

前缀一词由单词或字母的开头定义。在本文中,我们将学习如何使用Python内置的函数如startswith(),filter(),lambda和len()来筛选以给定前缀开头的列表元素。

让我们举一个示例来理解这个概念-

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()的函数的返回语句中使用列表推导。该函数将使用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 ,该变量与上述函数具有相同的名称,以传递列表和前缀的值。最后,使用变量 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()。这个程序将现实生活中的示例,如按特定前缀搜索的多个人名列表联系起来。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程