お世話になっております。
下記のようなリストがあり、検索値に一致した数を出したいのですが正規表現の書き方が色々試しても分かりません。
Python
1list = ['ab-cdef-gh', 'ab-cdef-gh-1', 'ab-cdef-gh-2'] 2 3search_words = ['ab-abwd-ab','bc-wmgw-ho','ab-cdef-gh',...] 4 5for i in search_words: 6 if i in list: 7 print(list.count(i))
上記のコードだとab-cdef-ghについてはカウントされているのですが、ab-cdef-ghを含むカウントの記述の仕方が分かりません。
下記のコードなどを調べて書いてみたのですが、希望通りの検索文字列になっていないようです。。
Python
1list = [ab-cdef-gh, ab-cdef-gh-1, ab-cdef-gh-2] 2 3for i in search_words: 4 if i in list: 5 regex = r'(?=\b)' + re.escape(i) + r'(?=\b)' 6 print(list.count(regex))
記述の仕方についてご教示頂けませんでしょうか。
宜しくお願い致します。
「ab-cdef-gh」とは、具体的に何なのでしょう。そのままだと、変数abから変数cdefと変数ghの値を引いた数値、ってことになりますが。それとも、"ab-cdef-gh"という文字列?
それから、search_wordsの具体例も挙げないと、「検索値に一致した数」とは何を示しているのか伝わりません。なにしろ、突然未定義の変数 l が出てくるので。
Daregada様
ご回答ありがとうございます。説明不足で失礼致しました。
search_wordsというリストの中を1行ずつループしてlistの中に「ab-abwd-ab」「bc-wmgw-ho」を含む文字列があった場合にその数をカウントしたいです。
宜しくお願い致します。
listという名前の「文字列のリスト」に含まれる文字列が、search_wordという名前の「文字列のリスト」に含まれる文字列に部分一致するか、を調べたいということでいいのかな?
「カウントしたいです」に書いてある文字列と、質問文の文字列が一致していないので意味不明です。
ご回答ありがとうございます。
search_words = ['ab-abwd-ab','bc-wmgw-ho','ab-cdef-gh',...]を1つずつリストの中から検索して、
「ab-abwd-ab」はリストに無いので0、「bc-wmgw-ho」もリストに無いので0、「ab-cdef-gh」についてはリストにab-cdef-ghを含む文字列があるため3とカウントしたいです。
宜しくお願い致します。
search_words = ['a','-',...]の場合、期待されるカウント結果はいくつになりますでしょうか?質問文だとそれが少し曖昧に感じます。2、3、6、11など、解釈はいろいろありえます。
toast-uz様
ご回答ありがとうございます。
search_wordsがaの場合は、期待するカウント数は0になります。
説明が下手で申し訳ないのですが、[ab-cdef-gh]ひとかたまりが含まれているかどうかをカウントしたいです。
宜しくお願い致します。
'ab-cdef-gh' ひとかたまりが含まれているかどうかカウントするのは、search_wordsに、'ab-cdef-gh'が含まれている場合、ですよね。そのsearch_wordsが、'a'だったり'-'だったりしたら、カウント結果はどうなるのでしょうか?特に、search_wordsの複数が同時にマッチしたらカウント結果をいくつにしたいのか、などを確認したいです。
「ab-cdef-ghを含むカウントの記述の仕方」として期待する結果は3ですよね。だとすると、'a'は全てのlist要素に含むので、カウントは3になると思いますし、'-'は全てのlistに複数含むので、カウントは3または8になるものと思います。そうすると、search_words =[''a', '-']の場合、カウント結果は0にはならないと思います。3なのか6なのか11なのか・・・。
ご回答ありがとうございます。
回答頂いてそこまで考えが至っておりませんでした。。
search_wordsについては最小の形式が「ab-cdef-gh」といった形になるので、aや-などは入ってきません。
説明不足で申し訳ございません。宜しくお願い致します。
すみません、ずっと質疑の意図が食い違っています。
search_wordsの形式を聞いているのではありません。
・「一致」とは何か
・「一致した数」とは何か
といった、質問の言葉が、きちんと定義されていないので、定義をして欲しいとお願いしています。その例として、仮にsearch_wordsが、aとか-だったら、一致した数はいくつになるのですか、と聞いております。仮にこうなったら、の話として聞いているのに、そうはなりません、と答えられている状態になります。
ご回答ありがとうございます。
理解不足ですみません。
頂いたコードで希望の出力が出来たため一旦クローズ致します。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー