2015-10-17 60 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'] 
[] 
[] 
要顯示與相同顏色的物品或者會不會是同一項目用不同的顏色
相關問題