有人知道这种令人困惑的集合构造语法的理由吗?我花了一天时间没找到这个bug,因为我在构造集合时漏掉了一个逗号。
> {1 2}
SyntaxError: invalid syntax # This makes sense.
> {'a' 'b'} = set(['ab']) # This does not.
最佳答案
那不是集合构造语法的东西。您遇到了隐式字符串文字连接,这是语言的一个令人困惑和令人惊讶的角落:
>>> 'a' 'b'
'ab'
如果您将两个字符串文字并排写入,它们将隐式组合为一个字符串。 (这仅适用于文字;str(3) str([])
是语法错误,而不是 '3[]'
。)
关于Python 集合构造函数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458920/