从python列表中获取字数

时间:2014-09-20 17:24:08

标签: python

我在计算列表中的单词时遇到了麻烦。

My_list = ["white is a colour", "orange is a fruit", "blue is a mood", "I like candy"]

我需要输出的脚本是列表中的单词数(本例中为15)。

len(My_list)

将返回“4”(项目数)。

for item in My_list:
    print len(item.split())

会给我每个项目的长度。

有没有办法从列表中获取字数? 理想情况下,我还想将每个单词附加到一个新列表中(每个单词都是一个项目)。

5 个答案:

答案 0 :(得分:2)

要查找每个项目中单词的总和:

sum (len(item.split()) for item in My_list)

将所有单词放入一个列表中:

sum ([x.split() for x in My_list], [])

答案 1 :(得分:2)

您可以使用以下内容生成所有单个单词的列表:

words = [word for line in My_list for word in line.split()]

计算单词,请使用sum()

sum(len(line.split()) for line in My_list)

演示:

>>> My_list = ["white is a colour", "orange is a fruit", "blue is a mood", "I like candy"]
>>> [word for line in My_list for word in line.split()]
['white', 'is', 'a', 'colour', 'orange', 'is', 'a', 'fruit', 'blue', 'is', 'a', 'mood', 'I', 'like', 'candy']
>>> sum(len(line.split()) for line in My_list)
15

答案 2 :(得分:1)

列表理解是一个非常好的主意。另一种方法是使用join和split:

l = " ".join(My_list).split()

现在' l'是一个包含所有单词标记作为项目的列表,您可以简单地使用len():

len(l)

答案 3 :(得分:0)

你总是可以选择简单的循环。

My_list = ["white is a colour", "orange is a fruit", "blue is a mood", "I like candy"]

c = 0
for item in My_list:
    for word in item.split():
        c += 1

print(c)

答案 4 :(得分:0)

My_list = ["white is a colour", "orange is a fruit", "blue is a mood", "I like candy"]

word_count = 0
for phrase in My_list:
    # increment the word_count variable by the number of words in the phrase.
    word_count += len(phrase.split())

print word_count