これは、ちょうどの部分がであることを意味しています。
最初の定義:search
という用語は正確に一致する必要がありますが、文字列内のどの位置でも一致します。これはおそらくほとんどあなたが意味するものです。この場合、サブリストにはの検索語が含まれているかどうかを実際に確認する必要があります。このためには、Pythonのin
演算子を使用します:ので、平等と含まれているとの違いの
if search in sublist[1]:
print sublist
を、これは少しと非常に遅いの間になります。私はそれがあなたにとって重要だとは思わない。
第2の定義:最初と同じですが、大文字と小文字は関係ありません。この場合、Pythons lower
(またはupper
)の文字列メソッドを使用して、大文字と小文字をすべて同じにするだけで、大文字と小文字を無視して、大文字小文字を正規化します。
search = 'Tom Clancy'
search_lower = search.lower() # move the search lowering
for sublist in list_of_books:
# since strings are immutable, sublist[1].lower() creates a new lower-cased
# string to be compared against search_lower. sublist[1] doesn't get modified
if search_lower in sublist[1].lower():
print sublist
これはおそらくあなたが望むものです。
"ファジーマッチング"という3つ目の定義があります。ファジーマッチを受け入れる場合、clincy
はClancy
と一致する可能性があります。くそ、検索があいまいであれば、tom
はClancy
と一致します。それはワームの全体的なものです。幸運にも、this Stack Overflow questionには、それを手助けできるライブラリがたくさんあります。
ああ、はい。ありがとう。目の別のセットは常に役立ちます! – sharkman
ええ、私はそれを知っていた! :) – sharkman