2013-03-04 69 views
0

說我有這個名單使用其他列表中的關鍵字搜索列表?

some_list = [ 
    "red apple", 
    "red banana", 
    "house is green", 
    "blue road", 
    "blue hat" 
] 

我想在另一個列表來指定我的關鍵字。

search_strings = ["red", "green"] 

有沒有辦法讓這個最終結果沒有太多的循環?

# search some_list using keywords from search_strings 
red = ["red apple", "red bana"] 
green = ["house is green"] 

回答

1
[[words for words in some_list if kw in words.split()] for kw in search_strings] 

這就給了你:

[['red apple', 'red banana'], ['house is green']] 

而且,如果 「sencences」 在some_listsearch_strings長度越長越大,它可能會支付將它們轉換爲集(如search_strings = set(search_strings)) 。

+0

哇,這是短而精確的......謝謝你給我看! :) – Panupat 2013-03-04 16:13:17

2