首页 > 后端开发 > Python教程 > 如何使用Python筛选以给定前缀开头的列表元素?

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

WBOY
发布: 2023-08-20 11:29:40
转载
1811 人浏览过

如何使用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()的方法的列表推导来过滤列表中的前缀元素。

Example

的中文翻译为:

示例

在下面的示例中,我们将在名为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()的内置方法来存储过滤的前缀元素。

Example

的中文翻译为:

示例

在以下示例中,我们首先通过使用def关键字定义函数来启动程序,该函数接受两个参数- lst(用于接收列表值)和 prefix(用于接收前缀关键字)。接下来,它将使用for循环迭代列表,然后使用 startswith() 方法设置前缀,该方法接受函数接收到的参数前缀值。然后使用名为 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()的方法来设置前缀,该方法可以用于过滤特定的前缀。

Example

的中文翻译为:

示例

在以下示例中,使用以def关键字开始的函数,该函数接受两个参数-lst(接收列表值)和prefix(接收特定的关键字搜索),该函数将根据是否以给定前缀开头来过滤项目列表。该函数使用一些内置函数(如list()filter()lambdastartswith())返回带前缀的结果。然后创建一个列表来存储变量course_list中的字符串值。接下来,使用函数调用来传递值-在变量filter_list中传递course_list“bc”。现在使用设置变量名为filter_list的print函数来获取结果。

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']
登录后复制

使用带有条件表达式的列表推导

该程序使用一个函数,通过设置一些条件表达式来返回列表压缩,这些条件表达式可以用来过滤以给定前缀开头的列表元素。

Example

的中文翻译为:

示例

在下面的示例中,开始使用函数 filter_list_elements_prefix(),它接受两个参数- lst(存储列表)和 prefix(在函数调用期间接收特定前缀)。该函数通过使用列表推导式返回新列表,即表达式 item[:len(prefix)] 对 lst 中的每个项从开头到前缀的长度进行切片,并将其与前缀进行比较。如果它们相等,则将该项包含在新列表中。接下来,创建一个列表以在变量 my_list 中存储一些字符串值。然后初始化变量 filter_list,它与上述函数具有相同的名称,以传递列表和前缀的值。最后,使用变量 filter_list 在 print 函数中获取结果。

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(),可以用于过滤前缀并根据给定条件返回结果。这个程序涉及到现实生活中的例子,比如一个由多个人名组成的名单,可以通过特定的前缀进行搜索。

以上是如何使用Python筛选以给定前缀开头的列表元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板