2015-10-17 61 views
0

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

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') 
    [] 

我想这个身体的功能,但它不工作虽然:

result = [] 
for i in items: 
    if i in colour:# problem might be here, but I really have no idea why it doesn't work. 
     result.append[i] 
return result 
+0

。它是这样的情况=) – 2015-10-17 18:00:49

+0

检查正则表达式 –

+0

你需要一个嵌套循环。对于我在项目中,对于c颜色,如果我在c类的东西 – RobertB

回答

1

您可以使用Python的滤波方法来匹配您正在寻找的子字符串:

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

文档上的过滤器:

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

输出:

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

把它在一种方法:

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

list comprehension应该这样做。

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

演示:

search_closet(['red summer jacket', 'red shoes', 'green hat'], 'red') 
search_closet(['red shirt', 'green pants'], 'blue') 
search_closet([], 'mauve') 

输出:

['red summer jacket', 'red shoes'] 
[] 
[] 
要显示与相同颜色的物品或者会不会是同一项目用不同的颜色
相关问题