从 python 中的集合列表中删除大括号

remove curly brackets from a list of sets in python

我的代码看起来像这样:

documents=set()
finals = []
temporary_set= set()
temporary_set.add(i)
finals.append(documents.intersection(temporary_set))

当我想从我使用的决赛列表中获取所有值时:

for final in finals:
    print (final)

这 returns 但是项目作为列表中的集合项目。像这样:

[{27309053}, {23625724}, {25051134}]

我怎样才能使大括号被省略并且我的结果看起来像这样:

[27309053, 23625724, 25051134]

???

您可以使用 itertools.chain.from_iterable 展平您的集合列表:

import itertools

x = [{27309053}, {23625724}, {25051134}]

list(itertools.chain.from_iterable(x))
# [27309053, 23625724, 25051134]

您可以使用 list comprehension:

l = [{27309053}, {23625724}, {25051134}]

[x for sl in l for x in sl]  # evaluates to [27309053, 23625724, 25051134]

你可以改变

finals.append(documents.intersection(temporary_set))

finals.extend(documents.intersection(temporary_set))

这会将交集的每个元素添加到列表中,而不是交集本身。

使用 修复上游代码是解决问题的方法。

如果你最终得到一个列表

l = [{27309053}, {23625724}, {25051134}]

在您无法修改其创建方式的地方,您可以像这样使用可迭代解包:

>>> l = [{27309053}, {23625724}, {25051134}]
>>> [x for x, in l]
>>> [27309053, 23625724, 25051134]