从字符串列表中提取标记集

时间:2019-08-09 19:34:18

标签: python list set

我有一个字符串列表,我想将所有标记提取到一组标记中,而不是一组列表。我需要将所有令牌混合在一起。

我的句子存储为“句子”中的字符串列表

所以,如果尝试:

words = set([])
a=set(sentences[1].split())
b=set(sentences[2].split())
a.union(b)

我像这样在一组中得到a和b集。这就是我要寻找的

{',', '.', '2.252', '35-1/7', '37-year-old', 'B', 'Blood', 'Fred', 'G4', 'Grauman', 'O+', 'P3-5', 'pregnancy', 'product', 'rubella', surface', 'the', 'to', 'type', 'week', 'woman'}

但是具有列表理解力

words = set()
[words.union(set(sent.split())) for sent in sentences]

输出是一组集合,像这样

[{'.',  'Care',  'He',  'Intensive',  'Neonatal''}, {'.',  '2.252',  35-1/7',  '37-year-old',  'Fred',  'G4',  'Grauman','}]

是否可以通过一些紧凑的代码(如列表理解)来获得所需的内容?

====

在对“单词”进行列表理解之后,我刚刚做了

a = set()
a.union(*words)

谢谢

2 个答案:

答案 0 :(得分:0)

如果句子是字符串,则可以将它们加入并再次拆分。

set(" ".join(sentences).split())

['A short sentence', 'A second sentence'] 进入{'A', 'second', 'sentence', 'short'}

答案 1 :(得分:0)

怎么做:

set(' '.join(sentences).split())

或者您可以尝试使用functools中的reduce。