Python集合,用于保存不重复的元素。集合的所有元素都放在一对“{ }”大括号中,两个相邻元素键用逗号分隔。
集合中的每个元素都是唯一的,因此可以用来做去重操作。
集合的创建
1. 直接使用大括号创建集合
语法:setname = {element1,element2,element3.....element n}
其中setname是集合的名字,大括号中的是集合的元素,不限制个数,不限制类型(只要是Python数据类型都可以)
代码实例:
可以发现,集合中的元素排列是无序的,输出的结果和存入的顺序并没有直接关系。
#使用大括号创建集合
set_name = {'小红','小青','小明','小明'} #注意这里只会保留一个'小明'
set_age = {10,20,21}
set_all = {'字符1',1,2,('字符2','字符3')}
print(set_name)
print(set_age)
print(set_all)
代码运行结果:
=========================== RESTART: E:\python_work\python_demo.py ===========================
{'小青', '小红', '小明'}
{10, 20, 21}
{'字符1', 1, 2, ('字符2', '字符3')}
>>>
2.使用set()函数创建集合
使用set()函数将列表、元组等其他可迭代对象转换为集合。
语法格式:setname = set(iteration)
其中iteration表示要转换为集合的可迭代对象,其类型可以是列表、元组、range对象、字符串。如果是字符串,返回的集合将是包含全部不重复字符的集合。
#使用set函数创建集合
set1 = set('字符串')
set2 = set(('元组元素1','元组元素2'))
set3 = set(['列表元素1','列表元素2'])
set4 = set(range(10))
print(set1)
print(set2)
print(set3)
print(set4)
代码运行结果:
=========================== RESTART: E:\python_work\python_demo.py ===========================
{'串', '字', '符'}
{'元组元素1', '元组元素2'}
{'列表元素1', '列表元素2'}
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>>
集合元素的添加与删除
1.向集合中添加元素
集合是可变序列,所以可以对其进行修改。
语法格式:setname.add(element)
其中element为要添加的目标元素值。
代码实例:
#向集合中添加元素
set_name = {'小红','小青','小明'}
print(set_name)
print('=====添加一个名为"小李"的元素====')
set_name.add('小李')
print(set_name)
代码运行结果为:
=========================== RESTART: E:\python_work\python_demo.py ===========================
{'小明', '小青', '小红'}
=====添加一个名为"小李"的元素====
{'小明', '小李', '小青', '小红'}
>>>
2.从集合中删除元素
删除整个集合:del setname
删除集合中的某个元素:pop()或者remove()方法
清空集合中的元素:clear()方法
代码片段1:
#从集合中移除某个元素
set_name = {'小红','小青','小明'}
set_name.remove('小红') #移除指定的元素
set_name.pop() #移除其中一个元素(随机移除)
print(set_name)
if '小白' in set_name:
set_name.remove('小白') #移除一个集合中没有的元素,一定要先做判断,然后对其删除
set_name.remove('小李') #该句话程序会报错
代码运行结果:
=========================== RESTART: E:\python_work\python_demo.py ===========================
{'小青'}
Traceback (most recent call last):
File "E:\python_work\python_demo.py", line 463, in <module>
set_name.remove('小李') #该句话程序会报错
KeyError: '小李'
>>>
代码片段2:
#清空集合元素并删除集合
set_name = {'小红','小青','小明'}
set_name.clear() #该语句会将集合变为空集合
print(set_name)
del set_name #删除集合,再访问集合将会导致程序报错
print(set_name)
代码运行结果:
=========================== RESTART: E:\python_work\python_demo.py ===========================
set()
Traceback (most recent call last):
File "E:\python_work\python_demo.py", line 471, in <module>
print(set_name)
NameError: name 'set_name' is not defined
>>>
集合的交集、并集和差集运算
集合中常用的操作为交集、并集、差集
交集:使用 “&” 符号
并集:使用 “|” 符号
差集:使用 “-” 符号
代码实例:
#交集、并集、差集的演示
java = {'小红','小明','小白'}
python = {'小红','小白','小黄'}
print('学习java的学生有:',java)
print('学习python的学生有:',python)
print('交集运算:',java & python)
print('并集运算:',java | python)
print('差集运算:',java - python)
print('差集运算:',python - java)
代码运行结果:
=========================== RESTART: E:\python_work\python_demo.py ===========================
学习java的学生有: {'小明', '小红', '小白'}
学习python的学生有: {'小红', '小黄', '小白'}
交集运算: {'小红', '小白'}
并集运算: {'小明', '小红', '小黄', '小白'}
差集运算: {'小明'}
差集运算: {'小黄'}
>>>