【问题标题】:Extracting set of tokens from list of strings从字符串列表中提取标记集
【发布时间】:2019-08-09 19:34:18
【问题描述】:

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

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

所以如果尝试:

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)

【问题讨论】:

  • "compact clean line"是什么意思?
  • 好吧,就像列表理解一样好。简短而具体的
  • 刚刚编辑了我所做的答案。谢谢,Python 新手,感谢您的建议。
  • @SantiagoAlcaide 最好发布你所做的作为对这个问题的回答,并接受它。据我所知,您的解决方案是最佳的。

标签: python list set


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    怎么样:

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

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

    【讨论】:

    • 您添加更多信息的代码如何?第一个答案几乎涵盖了所有这些。
    • 我想我们有点同时发帖。我在打字时没有看到那个答案!
    猜你喜欢
    • 2021-06-22
    • 2021-05-22
    • 1970-01-01
    • 2022-12-20
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 2015-05-12
    相关资源
    最近更新 更多