Set集合详解
集合定义
集合(set),由无序且无重复元素组成。支持数学操作
>>> basket = {'apple', 'orange', 'pear', 'orange', 'banana'}
>>> print(basket) # show that duplicates have been removed
{'banana', 'pear', 'apple', 'orange'} # 注意,不存在重复的元素
set函数
set函数用于创建集合
例.创建空集合
注意:创建空的set必须使用set(),而不是{},{}用于创建空的字典
>>> empty_set = set()
>>> empty_set
set()
集合运算
>>> seta = set("ishouke")
>>> setb = set("showmeke")
>>> seta
{'u', 's', 'e', 'o', 'h', 'i', 'k'}
>>> setb
{'w', 's', 'e', 'm', 'o', 'h', 'k'}
获取仅包含在集合seta中的元素
>>> seta - setb
{'u', 'i'}
获取包含在集合seta或集合setb中的元素(两个集合中的所有元素)
>>> seta | setb
{'u', 'w', 's', 'e', 'm', 'o', 'h', 'i', 'k'}
获取集合seta和集合setb共有的元素
>>> seta & setb
{'e', 'o', 'h', 'k', 's'}
获取存在seta或setb中的元素,不含集合seta和setb共有的元素
>>> seta ^ setb
{'w', 'u', 'm', 'i'}
集合函数
set.add(x)添加元素到集合
>>> myset.add(1)
>>> myset
{1}
>>> myset.add(2)
>>> myset
{1, 2}
set.remove(x)移除指定元素
>>> myset
{1, 2}
>>> myset.remove(2)
>>> myset
{1}
set.update(iterable) 更新集合
>>> myset = set()
>>> myset.update([2,3,'a'])
>>> myset
{2, 3, 'a'}
>>> myset.update((6,7))
>>> myset
{2, 3, 'a', 6, 7}
>>> myset.update({"a":"a1", "b":"b1"})
>>> myset
{2, 3, 'b', 6, 7, 'a'}
>>> myset.update("mystr")
>>> myset
{2, 3, 6, 7, 'y', 't', 's', 'm', 'b', 'a', 'r'}
注意# 函数参数必须为可迭代对象
>>> myset.update(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
set.clear() 清空集合
>>> myset
{1, 2}
>>> myset.clear()
>>> myset
set()
set comprehensions
类似list comprehensions
例子:获取存在在'abracadabra'中,但不在’abc’中的字符集合
>>> a = {x for x in "abracadabra" if x not in 'abc'}
>>> a
{'d', 'r'}
集合分解
>>> x, y = {"i", "shou"}
>>> x
'shou'
>>> y
'i'
注意:不会按顺序给变量赋值
集合比较
>>> {3, 2} == {2, 3}
True
>>> {3,2} == {2, 3, 5}
False
注意:两个集合中的元素如果完全相同,则判断这两个集合相等
#集合转字符串
>>> str({1, 'a', 'b44'})
"{1, 'a', 'b44'}"
字符串类型的集合转集合
>>> str_set = '{1, 2}'
>>> to_set = eval(str_set)
>>> to_set
{1, 2}
文章转载自授客的知识库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




