这种差异让我感到困惑:>>> s = "()())()">>> print set(s)set([')', '('])>>> print {s}set(['()())()'])为什么?
3 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
set()
将一个可迭代对象作为参数,其项将是集合的元素。
因此, set('my string') 将包含我传递给它的可迭代对象的每个字符,即 {'m', 'y' ...}
使用{}
,您可以通过写下每个元素来创建集合,并用逗号分隔。
{'my string'} 包含一个元素,字符串 'my string'
手掌心
TA贡献1942条经验 获得超3个赞
当你写:
set(s)
它将字符串视为可迭代对象,并创建一个包含其元素的集合。字符串的元素是单个字符。所以它相当于做:
{'(', ')', '(', ')', ')', '(', ')'}
由于集合不能包含重复元素,因此您会得到一个包含两个唯一字符'('
和的集合')'
。
但是,当你写:
{s}
它只是创建一个集合,其元素是变量的值。的{}
语法将每一个变量为单个元件,而不是遍历它。
该set()
函数经常用于将一种集合转换为一组其元素,这就是它迭代它的原因。
添加回答
举报
0/150
提交
取消