首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python列表中操作字符串

在python列表中操作字符串
EN

Stack Overflow用户
提问于 2015-04-22 09:22:20
回答 5查看 106关注 0票数 3

我有一个tweet列表,它被分组为列表中的tweet块,如下所示:

代码语言:javascript
运行
复制
[[tweet1, tweet2, tweet3],[tweet4,tweet5,tweet6],[tweet7, tweet8, tweet9]]

我想统计每个单词在每个子组中出现的次数。要做到这一点,我需要将每个tweet分成单独的单词。我想使用类似于str.split(‘')的东西,但收到一个错误:

代码语言:javascript
运行
复制
AttributeError: 'list' object has no attribute 'split' 

有没有办法把每条推文分成各自的单词?结果应该类似于:

代码语言:javascript
运行
复制
[['word1', 'word2', 'word3', 'word2', 'word2'],['word1', 'word1', 'word3', 'word4', 'word5'],['word1', 'word3', 'word3', 'word5', 'word6']]
EN

回答 5

Stack Overflow用户

发布于 2015-04-22 09:28:16

如果您有一个字符串列表

代码语言:javascript
运行
复制
tweets = ['a tweet', 'another tweet']

然后,您可以使用列表理解拆分每个元素

代码语言:javascript
运行
复制
split_tweets = [tweet.split(' ')
                for tweet in tweets]

因为它是一个tweet列表:

代码语言:javascript
运行
复制
tweet_groups = [['tweet 1', 'tweet 1b'], ['tweet 2', 'tweet 2b']]
tweet_group_words = [[word
                      for tweet in group
                      for word in tweet.split(' ')]
                     for group in tweet_groups]

它将给出单词列表的列表。

如果你想计算不同的单词,

代码语言:javascript
运行
复制
words = [set(word 
             for tweet in group
             for word in tweet.split(' '))
         for group in tweet_groups]
票数 6
EN

Stack Overflow用户

发布于 2015-04-22 09:27:55

你想要这样的东西:

代码语言:javascript
运行
复制
l1 = [['a b', 'c d', 'e f'], ['a b', 'c d', 'e f'], ['a b', 'c d', 'e f']]

l2 = []
for i,j in enumerate(l1):
    l2.append([])
    for k in j:
        l2[i].extend(k.split())

print(l2)

DEMO

票数 1
EN

Stack Overflow用户

发布于 2015-04-22 09:29:11

代码语言:javascript
运行
复制
groups = [["foo bar", "bar baz"], ["foo foo"]]
[sum((tweet.split(' ') for tweet in group), []) for group in groups]
# => [['foo', 'bar', 'bar', 'baz'], ['foo', 'foo']]

编辑:似乎需要一个解释。

每组[... for group in groups]

代码语言:javascript
运行
复制
- For each tweet, split into words `(tweet.split(' ') for tweet in group)`
- Concatenate the split tweets `sum(..., [])`

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29786086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档