连接存储在一个对象中的多个列表



我目前正在使用PRAW从reddit页面提取评论。我想将评论体中的某些单词与csv文件中的值相匹配。以下是我目前正在处理的内容:

submission.comments.replace_more(limit=None)
for comment in submission.comments.list():
results = (re.findall(r'[A-Z]{3,5}',comment.body))
print(results)

输出:

[]
['HCMC']
[]
[]
['ASRT']
[]
[]
['CBBT', 'TLSS']
['LLEX']
[]

我理解comment.body实际上只是存储在一个对象中的列表集合。有没有一种方法可以将这些列表连接成一个列表?

您可以使用itertools.chain.from_iterables:

>>> from itertools import chain
>>> list(chain.from_iterable(re.findall(r'[A-Z]{3,5}',comment.body)
for comment in submission.comments.list()))
['HCMC', 'ASRT', 'CBBT', 'TLSS', 'LLEX']

或者只是遍历results并将其项重写为新列表,如下所示:

concatenated = []
for lst in results:
for item in lst:
concatenated.append(item)

本文中的许多其他方法:https://www.pythonpool.com/flatten-list-python/

最新更新