如何测量列表中短语的单词长度

时间:2016-10-23 20:38:01

标签: python

如何衡量python列表中短语中单个单词的长度? 如果我写:

>>> lst=['Hi Andrea how are you','Happy birthday']
>>> print(len(lst))
5

我需要这个:

>>> [ 2 6 3 3 3 , 5 8 ]

单个单词的单一衡量标准。

2 个答案:

答案 0 :(得分:1)

我可以看到你在做什么。使用列表理解

>>> lst=['Hi Andrea how are you','Happy birthday']
>>> [[len(i) for i in x.split()] for x in lst]
[[2, 6, 3, 3, 3], [5, 8]]

这在列表列表中给出了长度。

答案 1 :(得分:1)

Moses Koledoye打败了我,但这里有一个更详细的答案(希望)能帮助你学习。

在您的示例中,您可以遍历列表并计算每个单词的长度。这将需要将每个句子中的单词分开。

从字符串句子中获取单个单词的一种简单方法是使用Python的 split() 。这将基于空格(或给定字符)拆分文本,并将结果返回到列表中:

>>> 'Hi Andrea how are you'.split()
['Hi', 'Andrea', 'how', 'are', 'you']

然后要查找每个单词的长度,请使用 len()

>>> len('hi')
2

使用list comprehension(如摩西的回答所示),你可以用一种简洁的方式将它们组合在一起:

[[len(word) for word in sentence.split()] for sentence in lst]

由于列表推导可能会让人感到困惑,因此这可能就像完全写出来一样:

all_lens = []
for sentence in lst:
    word_lens = []
    for word in sentence.split():
        word_lens.append(len(word))
    all_lens.append(word_lens)
print(all_lens)     
[[2, 6, 3, 3, 3], [5, 8]]

现在你可以看到为什么使用列表理解而不是更好(尽管有时候更令人困惑)。

有关Python中嵌套列表理解的更多背景信息,请参阅此相关问题:python nested list comprehension