如何在列表中找到匹配的元素?

2024-05-15 17:11:47 发布

您现在位置:Python中文网/ 问答频道 /正文

如何返回列表中匹配的元素? 例如:

def search_closet(items, colour):
    >>> search_closet(['red summer jacket', 'red shoes', 'green hat'], 'red')
    ['red summer jacket', 'red shoes']
    >>> search_closet(['red shirt', 'green pants'], 'blue')
    []
    >>> search_closet([], 'mauve')
    []

我试过这个身体功能,但没用:

^{pr2}$

Tags: 元素列表searchhatdefitemsgreenred
2条回答

一个list comprehension应该这样做。在

def search_closet(items, colour):
    return [i for i in items if colour in i] 

演示:

^{pr2}$

输出:

['red summer jacket', 'red shoes']
[]
[] 

可以使用Python的filter方法匹配要查找的子字符串:

filter(lambda x: "red" in x, ['red summer jacket', 'red shoes', 'green hat'])

过滤器文件:

https://docs.python.org/3/library/functions.html#filter

输出:

^{pr2}$

把它放到一个方法中:

def search_closet(items, colour):
    return filter(lambda x: colour in x, items)

相关问题 更多 >