2017-06-04 200 views
0

如何在Python 2.7中找到List(WordList)中的字符串(PartialWord)?以特定關鍵字開頭的字符串過濾器列表 - Python

PartialWord = "ab" 
WordList = ['absail', 'rehab', 'dolphin'] 

與像一個通配符搜索:AB *

凡只會查找的單詞,如果以這些字母開頭(即結果應該只給absail,但不戒療所,儘管兩者都具有'AB')。

WordList將是一個超過700KB的字典。

請保持答案相當簡單,因爲我在學習代碼的第4天。

+1

你需要找到第一個條目或所有? –

回答

2

您可以沿着使用str.startswith(..)列表理解得到開始與一些字符串作爲單詞的列表:

>>> PartialWord = "ab" 
>>> WordList = ['absail', 'rehab', 'dolphin'] 

>>> [word for word in WordList if word.startswith(PartialWord)] 
['absail'] 

由於每str.startswith document

str.startswith(prefix [,start [,end]]):

返回True如果字符串開始 與前綴,否則返回False前綴也可以是要尋找的 前綴的tuple。用可選開始,測試字符串從 那個位置開始。使用可選的結束,停止在該 位置比較字符串。

+0

非常感謝。 你能解釋爲什麼你需要「一字一修」嗎? –

+0

@MichaelTenson查看[Python的列表理解文檔](https://stackoverflow.com/documentation/python/196/list-comprehensions#t=201706041906440415065)。它會澄清你的疑惑。 –

1
for word in WordList: 
    if word.startswith(PartialWord): 
     print word  
0

大家都前面提到的,str.startswith是你的函數。您可以學習更復雜操作的正則表達式模式。 regex

0

你可以這樣做:

>>> WL = ['absail', 'rehab', 'dolphin'] 
>>> PW="ab" 
>>> L=[a for a in WL if a[:len(PW)]==PW] 
>>> L 
['absail'] 
相關問題