关于python:使用set()或{}创建集合的差异

differences for creating set using set() or {}

这种差异让我困惑:

1
2
3
4
5
6
7
8
>>> s ="()())()"
>>> print set(s)

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

>>> print {s}

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

为什么?


From the Python Documentation for the EDOCX1&0

Return a new set object, optionally with elements taken from iterable.

自从弦乐是一种易变的,方法创造了一整套吉芬弦乐中的所有特征。然而,由于设置不允许复制值,输出是一个集,包含了弦乐中的两个独特的特征:EDOCX1&2&EDOCX1&3)。

在另一只手上,短柄音符EDOCX1&4自从你只插入一个项目s(你的弦乐)以来,输出只是一个项目。


当你写:

1
set(s)

它把弦乐当作一种不可抗拒的东西,并使它的元素成套。弦乐的要素是个人特征。所以它相当于做:

ZZU1

自从一套不包含复制元素,你就有了两个独特的'('')'特征。

但是当你写:

1
{s}

它只是一套元素是变量的价值。句法处理的每一个变量都是单一元素,而不是重复。

函数通常用于从一种收集到一组元素的转换,这就是为何它不存在。


把一个不可分割的项目作为参数,该项目将是该组的要素。

所以,set("我的弦乐")会包含我经过的每一个特征,这是

{}创建一个集,在每一个元素的下方写入,按字母分隔。

包括一个元素,我的弦乐


因为第一个:

1
print set(s)

是从弦乐中简单地去除复制品,

但第二个

1
print {s}

只有一个元素才能成为一个元素。

为了取得同样的结果(它可以容易地在Python3):

1
print {i for i in s}

第一个创造了一套只包含唯一价值的组合,I.E()。当其他人是一条弦乐,你确定自己是什么