搞懂Python集合的基本操作
集合和字典类似也是无序的,用来保存不重复的元素。
Python中的集合将所有元素放在一对大括号 {} 中,相邻元素之间用“,”分隔,格式为:{item1,item2,...,itemn}。
集合只能存储不可变的数据类型,包括整型、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型。
>>> animal = {'cat', 'dog', 'pig', 'cow'}
>>> print(animal) # 这里演示的是去重功能
{'cat', 'dog', 'pig', 'cow'}
>>> 'dog' in animal # 快速判断元素是否在集合内
True
>>> a = set('abcdefghijklmn')
>>> b = set('dehkmn')
>>> a
{'m', 'i', 'n', 'b', 'a', 'f', 'k', 'e', 'l', 'c', 'h', 'j', 'd', 'g'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'i', 'b', 'a', 'f', 'l', 'c', 'j', 'g'}
>>> a | b # 集合a或b中包含的所有元素
{'m', 'i', 'n', 'b', 'a', 'k', 'e', 'h', 'f', 'l', 'c', 'j', 'd', 'g'}
>>> a & b # 集合a和b中都包含了的元素
{'m', 'n', 'k', 'e', 'h', 'd'}
>>> a ^ b # 不同时包含于a和b的元素
{'i', 'b', 'a', 'f', 'l', 'c', 'j', 'g'}
a = {1,'a',(1,2,3),'b',1.2} 用{}方式创建
b = set((1,2,3,4,5)) set方式创建
print(a)
print(b)
{1, 1.2, (1, 2, 3), 'b', 'a'}
{1, 2, 3, 4, 5}
a = {'cat', 'dog', 'cow', 'pig'}
print(a)
for item in a:
print(item)
{'cow', 'cat', 'pig', 'dog'}
cow
cat
pig
dog
animal = {'cat', 'dog', 'cow', 'pig'}
animal.add("wolf")
print(animal)
animal.update({'tiger','zebra'})
print(animal)
{'dog', 'cat', 'wolf', 'pig', 'cow'}
{'dog', 'zebra', 'cat', 'wolf', 'tiger', 'pig', 'cow'}
animal = {'cat', 'dog', 'cow', 'pig'}
animal.remove("dog")
print(animal)
animal.discard('aaaa') # 元素aaaa不存在不会报错
print(animal)
animal.pop() # 随机删除集合中的一个元素
print(animal)
{'pig', 'cat', 'cow'}
{'pig', 'cat', 'cow'}
{'pig', 'cow'}
animal = {'cat', 'dog', 'cow', 'pig'}
print(len(animal))
4
animal = {'cat', 'dog', 'cow', 'pig'}
print('cat' in animal)
animal.clear()
print(animal)
True
set([])
a = set('123456789')
b = set('45678')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
{'7', '9', '3', '6', '1', '8', '5', '2', '4'}
{'2', '9', '3', '1'}
{'7', '9', '3', '6', '1', '8', '5', '2', '4'}
{'7', '6', '8', '5', '4'}
{'9', '3', '1', '2'}
a = {'cat', 'dog', 'cow', 'pig'}
b = frozenset(['lion', 'deer'])
c = {'rabbit', 'rat'}
# 向set集合中添加frozenset
a.add(b)
print(b)
# 向为set集合添加子set集合
c.add(a)
print(c)
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
{'cow', frozenset({'deer', 'lion'}), 'dog', 'pig', 'cat'}
Traceback (most recent call last):
File "script.py", line 8, in
c.add(a)
TypeError: unhashable type: 'set'
Exited with error status 1
方法 | 描述 |
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除集合中在另一个指定集合相同的元素,并将另一个集合中不同的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |