使用 set() 或 {} 创建集合的差异

这种差异让我感到困惑:


>>> s = "()())()"

>>> print set(s)


set([')', '('])


>>> print {s}


set(['()())()'])

为什么?


慕斯709654
浏览 244回答 3
3回答

慕工程0101907

set() 将一个可迭代对象作为参数,其项将是集合的元素。因此, set('my string') 将包含我传递给它的可迭代对象的每个字符,即 {'m', 'y' ...}使用{},您可以通过写下每个元素来创建集合,并用逗号分隔。{'my string'} 包含一个元素,字符串 'my string'

手掌心

当你写:set(s)它将字符串视为可迭代对象,并创建一个包含其元素的集合。字符串的元素是单个字符。所以它相当于做:{'(', ')', '(', ')', ')', '(', ')'}由于集合不能包含重复元素,因此您会得到一个包含两个唯一字符'('和的集合')'。但是,当你写:{s}它只是创建一个集合,其元素是变量的值。的{}语法将每一个变量为单个元件,而不是遍历它。该set()函数经常用于将一种集合转换为一组其元素,这就是它迭代它的原因。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python