Python 创建空集

Python 创建空集,python,Python,我有一些代码,它汇总了一组选定的值。我想定义一个空集并添加到其中,但是{}一直在变成字典。我发现如果我用一个虚拟值填充集合,我可以使用它,但它不是很优雅。有人能告诉我正确的方法吗?谢谢 inversIndex = {'five': {1}, 'ten': {2}, 'twenty': {3}, 'two': {0, 1, 2}, 'eight': {2}, 'four': {1}, 'six': {1}, 'seven': {1}, '

我有一些代码,它汇总了一组选定的值。我想定义一个空集并添加到其中,但是
{}
一直在变成字典。我发现如果我用一个虚拟值填充集合,我可以使用它,但它不是很优雅。有人能告诉我正确的方法吗?谢谢

inversIndex = {'five': {1}, 'ten': {2}, 'twenty': {3},
               'two': {0, 1, 2}, 'eight': {2}, 'four': {1},
               'six': {1}, 'seven': {1}, 'three': {0, 2},
               'nine': {2}, 'twelve': {2}, 'zero': {0, 1, 3},
               'eleven': {2}, 'one': {0}}

query = ['four', 'two', 'three']

def orSearch(inverseIndex, query):
    b = [ inverseIndex[c] for c in query ]
    x = {'dummy'}
    for y in b:
        { x.add(z) for z in y }
    x.remove('dummy')
    return x

orSearch(inverseIndex, query)
{0,1,2}


您只需构造一个集合:

>>> s = set()
我会做好的

正确的方法是:

myset = set()

正如已经指出的那样,
{…}
符号不能用于初始化空集合

——获取empy
集合
文本的方法是通过
set()
,但是,如果您编写了代码,您不需要担心这一点,例如(使用
set()
):


集合文字只是花括号中值的元组:

x = {2, 3, 5, 7}
x = {*()}
因此,您可以使用花括号中的值的空元组创建一个空集:

x = {2, 3, 5, 7}
x = {*()}
然而,仅仅因为你可以,并不意味着你应该

除非它是一个模糊的编程,或者每个字符都很重要,否则我建议使用显式的
x=set()


A
集合
?只需使用
set()
。只为副作用而使用set理解?是的,一个非常黑客的新手;^)不正确;大括号可以用于非空集合文字。