加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何通过在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.most_common方法,就像这样

Counter(item for items in sentences for item in items.split()).most_common(10)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读