WELCOME

不积跬步,无以至千里;不积小流,无以成江海。

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'}

 


__EOF__

本文作者Ambitious
本文链接https://www.cnblogs.com/ambitiousPlus/p/16034519.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Ambitious~  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示