为什么我尝试在python中创建一组元组,例如
>>> print set((0,1))
set([0, 1])
>>> print set((0,0))
set([0])
>>> print set([(0,0)])
set([(0, 0)])
重复元素的元组会崩溃成非元组吗?为什么放置括号会产生所需的结果?
答案 0 :(得分:1)
set
构造函数采用 iterable ,它提供了集合的元素。如果为set
构造函数提供类似(0, 1)
的元组,则该元组的元素将成为集合的元素,即;在第一种情况下,元素将为0和1;在第二种情况下,只有元素:0。
在第三种情况下,您将为构造函数提供一个列表,其单个元素是元组(0, 0)
;结果集将具有与列表相同的元素(即元组(0, 0)
)。
如果您发现众多括号令人困惑,可以使用{ }
作为集合文字Python 2. 7 和Python 3.x:
>>> {(0,0)}
set([(0, 0)])
Python 2中repr
的{{1}}增加了一些混乱 - 在Python 3中,案例之间的区别更清晰:
set
答案 1 :(得分:0)
您正在传递嵌套的iterable并且set函数接受单个iterable:
print set([(0,0)]) # there is no other occurance of (0, 0) in list