Python – Cuenta el número de palabras en una lista de cadenas

Estoy tratando de encontrar el número de palabras completas en una lista de cadenas, aquí está la lista

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

gastos esperados:

 4 1 2 3 

Hay 4 palabras en mylist [0], 1 en mylist [1] y así sucesivamente

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

Totalmente no funciona …

¿Qué piensan ustedes?

Utilice 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 

La forma más sencilla debe ser

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

Puedes usar NLTK :

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

Salida:

 [4, 1, 2, 3] 
 for x,word in enumerate(mylist): print len(word.split()) 
 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