Python中的set
set_lst = [
('集合容器不可哈希',),
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。('集合中的元素必须可哈希',),
('集合是无序的',),
('集合自动去重',),
('增',),
('删',),
('查',),
('集合运算',),
('练习',),
]
集合容器不可哈希
>>>hash(set())
TypeError: unhashable type: 'set'
集合中的元素必须可哈希
>>>num_set = {1, 2, 3, [4]}
TypeError: unhashable type: 'list'
集合是无序的
>>>num_set = {1, 2, 3, 4}
>>>num_set[0]
TypeError: 'set' object does not support indexing
集合自动去重
>>>num_set = {1, 1}
>>>num_set
{1}
增
>>>num_set = {1, 2}
>>>num_set.add(3)
>>>num_set
{1, 2, 3}
>>>num_set.update([4, 5])
>>>num_set
{1, 2, 3, 4, 5}
删
set.pop()理论上是移除并返回任意的集合元素
集合是无序的,所以要删除某一元素时,用remove()方法会更好一些
(PS: Python 3.6.2)
>>>num_set = {1, 2, 3, 4, '5', 6}
>>>num_set.pop()
1
>>>num_set.remove('5')
>>>num_set
{2, 3, 4, 6}
>>>num_set.clear()
>>>num_set
set()
>>>del num_set
>>>num_set
NameError: name 'num_set' is not defined
查
>>>num_set = {1, 2}
>>>for i in num_set:
... i
...
1
2
集合运算
>>>set_1 = {1, 2, 3, 4}
>>>set_2 = {4, 5, 6, 7}
交集
>>>set_1 & set_2
{4}
并集
>>>set_1 | set_2
{1, 2, 3, 4, 5, 6, 7, 8}
反交集
>>>set_1 ^ set_2
{1, 2, 3, 5, 6, 7, 8}
差集
>>>set_1 - set_2
{1, 2, 3}
子集与超集
>>>set_1 < set_2
False
>>>set_1 > set_2
False
练习
运用集合的知识为列表去重
>>>lst = [1, 1, 2, 2, 3, 4]
>>>lst = list(set(lst))
>>>lst
[1, 2, 3, 4]