这种差异让我感到困惑:
>>> s = "()())()"
>>> print set(s)
set([')', '('])
>>> print {s}
set(['()())()'])
为什么?
最佳答案
来自Python documentation对于 set()
方法:
Return a new set object, optionally with elements taken from iterable.
由于字符串是可迭代的,set()
方法创建给定字符串中所有字符的集合。但是,由于集不允许重复值,因此输出是一个包含字符串中两个唯一字符的集:')'
和 '('
。
另一方面,简写语法 {s}
会在大括号之间创建一个包含所有项目的集合。由于您只插入了一项 s
(您的字符串),因此输出是仅包含一项的集合。
关于python - 使用 set() 或 {} 创建集合的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918325/