2024-04-20 09:36:23 发布
网友
我尝试使用set.add(tuple)迭代地构建一组元组。问题是第一个元组没有保持封装为元组。其成员作为唯一元素输入集合。在
set.add(tuple)
# What I'd like to do s = set((1,2)) s.add((3,4)) s.add((5,6)) >>>s >>>{1, 2, (3, 4), (5, 6)}
当然,我可以建立一个元组列表,然后将其转换为一个集合,但是我想知道是否可以避免从一个列表转换到另一个集合。在
谢谢。在
一个参数set构造函数接受要放入集合中的一个iterable。特别是,它不接受对象,并创建包含该对象的singleton集。在
set
您没有得到错误,因为元组是可编辑的;set构造函数尽职尽责地将元组的每个元素添加到集合中。在
更好的方法是使用构造函数{(1,2)},而不是set(((1,2),))或set([(1,2)]);{...}语法被重载以允许创建set实例和dict实例。(但是不能用这种方式生成一个空集;面对歧义,python假设dict)
{(1,2)}
set(((1,2),))
set([(1,2)])
{...}
dict
您应该这样创建集合:
s = {(1, 2)}
否则,set()“constructor”将解压元组中的所有元素并将它们添加到新的空集中。在
set()
在Python 2.7及更高版本上,可以使用set literal:
如果您想使用set来生成一个元素为thing的集合,那么可以这样做
thing
其中set的参数是1元素列表。如果thing是(1,2)`,那意味着你有
s = set([(1, 2)])
一个参数
set
构造函数接受要放入集合中的一个iterable。特别是,它不接受对象,并创建包含该对象的singleton集。在您没有得到错误,因为元组是可编辑的;
set
构造函数尽职尽责地将元组的每个元素添加到集合中。在更好的方法是使用构造函数
{(1,2)}
,而不是set(((1,2),))
或set([(1,2)])
;{...}
语法被重载以允许创建set
实例和dict
实例。(但是不能用这种方式生成一个空集;面对歧义,python假设dict
)您应该这样创建集合:
否则,
set()
“constructor”将解压元组中的所有元素并将它们添加到新的空集中。在在Python 2.7及更高版本上,可以使用set literal:
如果您想使用
^{pr2}$set
来生成一个元素为thing
的集合,那么可以这样做其中
set
的参数是1元素列表。如果thing
是(1,2)`,那意味着你有相关问题 更多 >
编程相关推荐