文字列の内部を検索する部分文字列のリストを作成し、その文字列に部分文字列が出現する回数を受け取りたいです。
list = ['one', 'two', 'three']
str = "one one two four five six"
count = str.count(list)
したがって、この例では、countは3である必要があります。ただし、.count()は何らかの理由でリストから文字列を読み取ることができないため、それを回避する方法がわかりません。
回答 3 件
あなたが望むのは次のものだと思います
count = sum([str.count(e) for e in tup))
どの
sums
任意のsubstring
の回数 でtup
str
に表示されます 。また、あなたの
tuple
はlist
です 。それをtuple
にするには (不変)、(
を使用('one', 'two', 'three')
また、変数名
str_
を使用する必要があります (標準のPython規約)str
のオーバーロードを回避する オブジェクト。ジェネレーター式と
sum
を使用する :count = sum(1 for x in the_string.split(" ") if x in tup)
関連した質問
- Python:書き込み関数:任意のテキストの平均文長を数える方法
- 1つの文字列で複数の部分文字列を見つける方法。 Python
- モバイル数値シーケンスを実際の文に変換するのに助けが必要です
- リストをネストされたリストに分割する
- Python376の関数を介して文字列変数を渡す
- 巨大なリストを特定のマークで区切られた小さなサブリストに分割する方法
- インデックスの特定の配列からリスト内の要素をポップするにはどうすればよいですか?
- あるリストを別のリストに追加する方法は?
- オブジェクトの2つのリストにPythonで同じタイプのオブジェクトのみが含まれているかどうかを確認する方法はありますか?
- 断続的な変数を再利用せずに、dictキーを使用して文字列をフォーマットする効率的な方法
1つの方法は
sum
を使用することです ジェネレーター式を使用してset
を利用する O(1)ルックアップ用。str.split()
文字列を空白スペースで区切ってリストに分割します。これが機能する理由は
bool
ですint
のサブクラスです 、したがってTrue
を合計できます 整数であるかのように要素。リストと文字列があり、タプルは含まれていないことに注意してください。さらに、クラスの後に変数に名前を付けないでください(例:
list
、str
、set
)。