web-dev-qa-db-ja.com

Python-リスト文字列内の単語数をカウントする

文字列のリストで単語全体の数を見つけようとしています。ここにリストがあります

mylist = ["Mahon Point retail park", "Finglas","Blackpool Mahon", "mahon point  blanchardstown"] 

期待される結果:

4
1
2
3

Mylist [0]には4つの単語があり、mylist [1]には1つの単語があります。

for x, Word in enumerate(mylist):
    for i, subwords in enumerate(Word):
        print i

まったく動作しません...

皆さんはどう思いますか?

4
Boosted_d16

使用する str.split

>>> mylist = ["Mahon Point retail park", "Finglas","Blackpool Mahon", "mahon point  blanchardstown"] 
>>> for item in mylist:
...     print len(item.split())
...     
4
1
2
3
18

最も簡単な方法は

num_words = [len(sentence.split()) for sentence in mylist]
3
Hari Menon

[〜#〜] nltk [〜#〜] を使用できます:

import nltk
mylist = ["Mahon Point retail park", "Finglas","Blackpool Mahon", "mahon point  blanchardstown"]
print(map(len, map(nltk.Word_tokenize, mylist)))

出力:

[4, 1, 2, 3]
2
mylist = ["Mahon Point retail park", "Finglas","Blackpool Mahon", "mahon point blanchardstown"]
flage = True
for string1 in mylist:
    n = 0
    for s in range(len(string1)):
        if string1[s] == ' ' and flage == False:
            n+=1
        if string1[s] == ' ':
            flage = True
        else:
            flage = False
    print(n+1)
0
sshivanshu992
a="hello world aa aa aa abcd  hello double int float float hello"
words=a.split(" ")
words
dic={}
for Word in words:
    if dic.has_key(Word):
        dic[Word]=dic[Word]+1
    else:
        dic[Word]=1
dic
0
Usama Chitapure

これは別の解決策です:

最初にデータをクリーンアップしてから、次のように結果をカウントできます。

mylist = ["Mahon Point retail park", "Finglas","Blackpool Mahon", "mahon point  blanchardstown"] 
for item in mylist:
    for char in "-.,":
        item = item.replace(char, '')
        item_Word_list = item.split()
    print(len(item_Word_list))

結果:

4
1
2
3
0
neosergio

Counter関数を使用して、リスト内の単語の出現回数を数えることができます。

from collection import Counter

string = ["mahesh","hello","nepal","nikesh","mahesh","nikesh"]

count_each_Word = Counter(string)
print(count_each_Word)

出力:

0
Mahesh Acharya
for x,Word in enumerate(mylist):
    print len(Word.split())