2017-06-04 23 views
0

Python 2.7のリスト(WordList)内の文字列(PartialWord)を見つけるにはどうすればよいですか?特定のキーワードで始まる文字列のフィルタリスト - Python

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

のようなワイルドカードで検索:AB *それは両方持つにもかかわらず、(つまり、結果だけabsailを与えるが、リハビリべきではないこれらの文字で始まる場合にのみ、単語を見つけるだろう

'ab')。

WordListは700KBを超える辞書です。

私はコード作成の勉強の4日目であるので、回答はかなり単純です。

+1

あなたが最初のエントリまたはそれらのすべてを見つける必要があるのですか? –

答えて

2

あなたにいくつかの文字列で始まる単語のリストを取得するにはリスト内包に沿っstr.startswith(..)を使用することがあります。str.startswith document 1として

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

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

str.startswith(接頭辞[、start [、end]]):

Trueの場合、文字列が接頭辞で始まる場合は 、それ以外の場合はFalseを返します。 接頭辞は、の のプレフィックスを検索することもできます。オプションのを使用してを開始すると、その位置は で始まります。オプション末尾がの場合は、その文字列の比較を停止してください。 誰もが前に述べたよう

+0

ありがとうございました。 「単語のための単語」が必要な理由を説明できますか? –

+0

@MichaelTenson [PythonのList Comprehension Document](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'] 
関連する問題