Python中的set
set_lst = [
('集合容器不可雜湊',),
('集合中的元素可雜湊',),
('集合自動去重',),
('增',),
('刪',),
('查',),
('集合運算',),
('練習',),
]
集合容器不可雜湊
>>>hash(set())
TypeError: unhashable type: 'set'
集合中的元素可雜湊
>>>hash(list({1, 2})[0])
1
集合自動去重
>>>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()理論上是隨機移除集合中的某一元素,但我在直譯器裡試了4次,都是移除了集合中的第一個元素(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]