重複の可能性:
Pythonでのアイテム頻度カウント
簡単な質問
ある単語が配列に何回出現するかを調べるにはどうすればよいですか?
約 5000 語のテキストを含む配列があり、配列に「ヘルプ」という単語が何回出現するかを調べたいと考えています。どうすればいいですか?
配列は x に格納されるため、私のコードは次のようになります。
x = [...]
word = "help"
そして、xに「ヘルプ」が表示される回数を取得するために何を入れればよいかわかりません
助けてくれてありがとう!
重複の可能性:
Pythonでのアイテム頻度カウント
簡単な質問
ある単語が配列に何回出現するかを調べるにはどうすればよいですか?
約 5000 語のテキストを含む配列があり、配列に「ヘルプ」という単語が何回出現するかを調べたいと考えています。どうすればいいですか?
配列は x に格納されるため、私のコードは次のようになります。
x = [...]
word = "help"
そして、xに「ヘルプ」が表示される回数を取得するために何を入れればよいかわかりません
助けてくれてありがとう!
>>> import collections
>>> print collections.Counter(['a', 'word', 'is', 'a', 'thing', 'that', 'is', 'countable'])
Counter({'a': 2, 'is': 2, 'word': 1, 'that': 1, 'countable': 1, 'thing': 1})
これは 2.7+、カウンターです。
リスト内の各要素が完全な単語ではなく文字である編集に基づいて、次のようになります。
>>> import re
>>> letters =
['i', 'n', 'e', 'e', 'd', 's', 'o', 'm', 'e', 'h', 'e', 'l', 'p', 'h', 'e', 'l', 'p', 'm', 'e', 'p', 'l', 'e', 'a', 's', 'e', 'I', 'n', 'e', 'e', 'd', 'h', 'e', 'l', 'p']
>>> len(re.findall('help', "".join(letters)))
3
@sberryが示したように、カウンターは目的を果たしますが、単一の単語を1回だけ検索し、すべての単語の出現を取得することに興味がない場合は、目的のためにより単純なツールを使用できます
(私はsberryから例を取りました)
与えられた単語の出現を見つけるための単語のリストが与えられた場合、リストのcountメソッドを使用できます
>>> list_of_words=['a', 'word', 'is', 'a', 'thing', 'that', 'is', 'countable']
>>> list_of_words.count('is')
2
あなたのコメントが示しているように、文字のリストを検索することに興味があるかもしれません。そのような
letters =
['i', 'n', 'e', 'e', 'd', 's', 'o', 'm', 'e', 'h', 'e', 'l', 'p', 'h', 'e', 'l', 'p', 'm', 'e', 'p', 'l', 'e', 'a', 's', 'e', 'I', 'n', 'e', 'e', 'd', 'h', 'e', 'l', 'p']
すべての文字を連結して生成された後の文字列でカウントを使用することもできます
>>> ''.join(letters).count('help')
3
言葉がごちゃごちゃにcollections.Counterなったらここで魔法をかけて
>>> def count_words_in_jumbled(jumbled,word):
jumbled_counter = collections.Counter(jumbled)
word_counter = collections.Counter(word)
return min(v /word_counter[k] for k,v in jumbled_counter.iteritems() if k in word)
>>> count_words_in_jumbled(['h','e','l','l','h','e','l','l','h','e','l'],'hel')
3
>>> count_words_in_jumbled(['h','e','l','l','h','e','l','l','h','e','l'],'hell')
2
>>> count_words_in_jumbled(['h','x','e','y','l','u','p'] ,'help')
1
nhelps = len(''.join(charlist).split('help')[1:]