如何通过在python中拆分列表元素来创建列表?
发布时间:2020-12-20 12:24:20 所属栏目:Python 来源:网络整理
导读:比方说我有: sentences = ['The girls are gorgeous','I'm mexican'] 我想获得: words = ['The','girls','are','gorgeous','I'm','mexican'] 我试过了: words = [w.split(' ') for w in sentences] 但没有预期的结果. 这对于Counter(单词)是否有效,因为我
比方说我有:
sentences = ['The girls are gorgeous','I'm mexican'] 我想获得: words = ['The','girls','are','gorgeous','I'm','mexican'] 我试过了: words = [w.split(' ') for w in sentences] 但没有预期的结果. 这对于Counter(单词)是否有效,因为我需要获得频率? 解决方法
您的方法不起作用,因为,split返回一个列表.因此,您的代码会创建一个嵌套列表.您需要将其展平以与Counter一起使用.你可以用很多方式压扁它.
from itertools import chain from collections import Counter Counter(chain.from_iterable(words)) 这将是压缩嵌套列表并查找频率的最佳方法.但是你可以像这样使用生成器表达式 sentences = ['The girls are gorgeous',"I'm mexican"] from collections import Counter print Counter(item for items in sentences for item in items.split()) # Counter({'mexican': 1,'girls': 1,'are': 1,'gorgeous': 1,"I'm": 1,'The':1}) 这将获取每个句子,将其拆分以获取单词列表,迭代这些单词并展平嵌套结构. 如果你想找到前10个单词,那么你可以使用 Counter(item for items in sentences for item in items.split()).most_common(10) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |