我有一个字符串列表,我想将所有标记提取到一组标记中,而不是一组列表。我需要将所有令牌混合在一起。
我的句子存储为“句子”中的字符串列表
所以,如果尝试:
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)
谢谢
答案 0 :(得分:0)
如果句子是字符串,则可以将它们加入并再次拆分。
set(" ".join(sentences).split())
转['A short sentence', 'A second sentence']
进入{'A', 'second', 'sentence', 'short'}
答案 1 :(得分:0)
怎么做:
set(' '.join(sentences).split())
或者您可以尝试使用functools中的reduce。