Python集合
1.集合(set)
(1)集合是可变的容器
(2)集合内部的数据都是唯一的,其值不能更改,可以包含元组,但不能有列表
(3)集合是无序的存储结构,集合中的数据没有先后顺序关系
(4)集合内的元素必须是不可变的对象
(5)集合是可迭代对象
(6)集合相当于只有键没有值的字典
- 内置函数:
add(): |
为集合添加元素。 |
clear(): | 移除集合中的所有元素。 |
copy(): | 拷贝一个集合。 |
difference(): | 返回多个集合的差集。 |
discard(): | 删除集合中指定的元素。 |
intersection(): | 返回集合的交集。 |
isdisjoint(): | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset(): | 判断指定集合是否为该方法参数集合的子集。 |
issuperset(): | 判断该方法的参数集合是否为指定集合的子集。 |
pop(): | 随机移除元素。 |
remove(): | 移除指定元素。 |
symmetric_difference(): | 返回两个集合中不重复的元素集合。 |
union(): | 返回两个集合的并集。 |
2.集合的基本操作
(1)利用集合特性取出重复元素
1 利用集合特性取出重复元素 2 list1 = [1, 2, 3, 5, 1, 2, 36, 4, 8, 7, 55] 3 set1 = set(list1) 4 print(list(set1)) # >> [1, 2, 3, 36, 5, 4, 7, 8, 55] 5 6 # set() : 定义集合 7 set2 = set() 8 print(type(set2)) # >> <class 'set'>
(2)集合.add : 添加元素
1 # 集合.add : 添加元素 2 set2 = set() 3 set2.add('《三体》') 4 print(set2) # >> {'《三体》'}
(3)集合.update() : 合并两个字典并取出重复值
1 # 集合.update() : 合并两个字典并取出重复值 2 set3 = set() 3 set3.add('三体') 4 set3.add('红楼梦') 5 set2.update(set3) 6 print(set2) # >> {'红楼梦', '三体', '《三体》'}
3.移除
(1)移除元素 集合.remove() ,如果集合中没有这个元素,就会报错
1 set1 = {'dBG4', 'baHC', '6loW', 'hHWl', 'f8aU'} 2 set1.remove('hHWl') 3 print(set1) # >> {'6loW', 'dBG4', 'f8aU', 'baHC'} 4 set1.remove('1232') 5 print(set1) # >> KeyError: '1232'
(2)集合.disca() 如果元素不在集合中,也不会报错,打印原集合
1 set1 = {'dBG4', 'baHC', '6loW', 'hHWl', 'f8aU'} 2 set1.discard('dBG4') 3 print(set1) # >> {'baHC', 'hHWl', '6loW', 'f8aU'} 4 set1.discard('1234') 5 print(set1) # >> {'6loW', 'baHC', 'hHWl', 'dBG4', 'f8aU'}
(3)集合.pop() : 随机删除集合里面的元素
1 set1 = {'dBG4', 'baHC', '6loW', 'hHWl', 'f8aU'} 2 set1.pop() 3 print(set1) # >> {'hHWl', 'dBG4', 'f8aU', 'baHC'}
5.交并补
1 set1 = {1, 2, 5, 4, 5, 2, 3} 2 set2 = {1, 2, 5, 4, 2, 3, 6, 8, 5, 4} 3 # 交集 4 result = set1.intersection(set2) 5 print(result) 6 # 并集 7 result = set1.union(set2) 8 print(result) 9 # 补集 10 result = set2.difference(set1) 11 print(result) 12 # {1, 2, 3, 4, 5} 13 # {1, 2, 3, 4, 5, 6, 8} 14 # {8, 6} 15 16 # 交集 17 print(set1&set2) 18 # 并集 19 print(set1|set2) 20 # 补集 21 print(set2-set1) 22 23 # {1, 2, 3, 4, 5} 24 # {1, 2, 3, 4, 5, 6, 8} 25 # {8, 6}
5.小练习
随机产生五组验证码
1 import random 2 3 code_list = set() 4 s = 'qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM' 5 while True: 6 code = '' 7 for i in range(4): 8 r = random.choice(s) # 表示从s中随机取一个字符 9 code += r 10 # 将code添加到set中 11 code_list.add(code) 12 if len(code_list) == 5: 13 break 14 print(code_list) # >> {'dBG4', 'baHC', '6loW', 'hHWl', 'f8aU'}
作者:Ambitious
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!