我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python集合set()使用的方法详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python集合set()使用的方法详解

在python3中按数据类型的可变与不可变大致分为如下几种类型:

  • 不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。

1.集合的特点

1.无序不重复没有重复的元素,且元素无序存放(故集合没有下标和切片),set的只要作用就是用来给数据去重。

2.使用时为 { },与字典区分:当花括号里的元素不是键值对的时候为集合。

3.集合的底层其实是通过字典来封装的

2.set的建立

可以使用大括号 { } 或者 set() 函数创建集合,但是注意如果创建一个空集合必须用 set() 而不是 { },因为{}是用来表示空字典类型的。

1.用set()函数创建set集合

person2 = set(("hello","jerry",133,11,133,"jerru")) #只能传入一个参数,可以是list,tuple等 类型
print(len(person2))
print(person2)
'''
5
{133, 'jerry', 11, 'jerru', 'hello'}
'''

2.add()

a=set()
a.add("a")
a.add("b")
print(a)

3.用{}创建set集合。空set集合用set()函数表示,不可a={}。

person ={"student","teacher","babe",123,321,123} #同样各种类型嵌套,可以赋值重复数据,但是存储会去重
print(len(person))  #存放了6个数据,长度显示是5,存储是自动去重
print(person) #但是显示出来则是去重的
'''
5
{321, 'teacher', 'student', 'babe', 123}
'''
#空set集合用set()函数表示
person1 = set() #表示空set,不能用person1={}
print(len(person1))
print(person1)
'''
0
set()
'''

4.set集合的转化

a=["awe","weg","dawqgg"]
c=set(a)
print(c)
b="chenshuagege"
d=set(b)
print(d)
al=("233","34455")
aw=set(al)
print(al)

3.常见使用注意事项

#set对字符串也会去重,因为字符串属于序列。
str1 = set("abcdefgabcdefghi")
str2 = set("abcdefgabcdefgh")
print(str1,str2)
print(str1 - str2) #-号可以求差集
print(str2 - str1)  #空值
#print(str1 + str2)  #set里不能使用+号
====================================================================
{'d', 'i', 'e', 'f', 'a', 'g', 'b', 'h', 'c'} {'d', 'e', 'f', 'a', 'g', 'b', 'h', 'c'}
{'i'}
set()

4.set的常用方法

4.1 set集合的增删改查操作

  • add 用于加入元素
  • update 用于集合的合并
  • remove 当移除一个集合里没有的元素时,报错
  • discard 当移除一个集合里没有的元素时,不会报错
  • del 仅可对集合本身使用,不可用于元素,因为元素在集合里为混乱排放,无下标
  • clear 清空集合,留下空集合
  • pop 随机删除集合里的一个元素
#1.给set集合增加数据
person ={"student","teacher","babe",123,321,123}
person.add("student") #如果元素已经存在,则不报错,也不会添加,不会将字符串拆分成多个元素,区别update
print(person)
person.add((1,23,"hello")) #可以添加元组,但不能是list
print(person)
'''
{321, 'babe', 'teacher', 'student', 123}
{(1, 23, 'hello'), 321, 'babe', 'teacher', 'student', 123}
'''
# update用于集合的合并,可以把多个集合添加到一个集合里面。可以iterar的数据都可以添加成set集合
person.update("abc")#使用update不能添加字符串,会拆分
print(person)  #会将字符串拆分成a,b,c三个元素
'''
{321, 1, 3, 'b', 'c', 'teacher', (1, 23, 'hello'), 'a', 'babe', 'student', 123}
'''
set1 = set()
set1.add('武动乾坤')
set2 = {'jsy', '稻香', '爱的代价', '大碗宽面'}
set2.update(set1)
print(set2)
'''
{'大碗宽面', 'jsy', '爱的代价', '稻香', '武动乾坤'}
'''
#2.从set里删除数据
person.remove("student")#按元素去删除
print(person)
#print("student")如果不存在 ,会报错。
'''
{321, 1, 3, 'c', 'b', (1, 23, 'hello'), 'teacher', 'babe', 'a', 123}
'''
person.discard("student")#功能和remove一样,好处是没有的话,不会报错
ret = person.pop() #在list里默认删除最后一个,在set里随机删除一个。
print(person)
print(ret) #pop()返回的是被删除掉的那一项
'''
{1, 3, (1, 23, 'hello'), 'teacher', 'b', 'a', 'babe', 123, 'c'}
'''
#3.更新set中某个元素,因为是无序的,所以不能用角标
#所以一般更新都是使用remove,然后在add
#4.查询是否存在,无法返回索引,使用in判断
if "teacher" in person:
    print("true")
else:
    print("不存在")
'''
true
'''
#5.终极大招:直接清空set
print(person)
person.clear()
print(person)
'''
set()
'''

4.2 其它用法

交 并 差集操作交集 intersection;并集 union;差集 difference
可用运算符表示交集,并集,差集交集 & 并集 | 差集 -

#取两者的交集
b={1,23}
a={23,5}
ret=b.intersection(a)
print(ret)
#取两者的交集,intersection_update会改变b的内容
b={1,23}
a={23,5}
b.intersection_update(a)
print(b)
#union是把两个set集合合起来
a={"a","b","c"}
b={"a","wa"}
wt=a.union(b)
print(wt)
#difference表示的意思是a中的内容b是没有的,但是这个不会修改a自身的值,而是付给ret了
a={"12","14","234"}
b={"12","23"}
ret=a.difference(b)
print(ret)
#difference_update表示的意思是a中的内容b是没有的,执行完,会修改a的内容
a={"12","14","234"}
b={"12","23"}
a.difference_update(b)
print(a)
#symmetric_difference为把两个set集合里相同的内容当作边然后取这边两边的内容
a={"a","b","c"}
b={"a","wa"}
ret=a.symmetric_difference(b)
print(ret)
a.symmetric_difference(b)
print(a)
#可用运算符表示交集,并集,差集
set2 = {1, 2, 3, 4, 5}
set3 = {3, 4, 5, 6, 7, 8, 9} 
print(set2 & set3)  # 交集符号  &
print(set2 | set3)  # 并集符号 |
print(set2 - set3)  # 差集符号 -
b={1,23}
a={23,5}
#如果a与b有集合的话,就返回false;如果没有集合的话,就返回true
ret=b.isdisjoint(a)
print(ret)
b={1,23,5}
a={23,5}
#issuperset说明b是否是a的父亲,如果是就输出true,如果不是输出false
ret=b.issuperset(a)
print(ret)
b={1,23,5}
a={23,5}
#b是否是a的子,如果是就输出true,如果不是就输出false
ret=b.issubset(a)
print(ret)

5.列表,元组,字典,集合 

  • list: 允许重复,有序,有下标,可切片
  • tuple: 允许重复,里面元素不能进行增删改,只能查看
  • dict: 字典里的元素以键值对的形式存在 键:唯一性 值:可以重复
  • set: 元素不允许重复,且具有无序性

5.1 它们之间的类型转换

1.列表,元组,集合,此三者均可相互转

list----->tuple,set 列表转集合时,注意不能有重复元素,否则长度改变

tuple----->list,set

set----->list,tuple

2.当字典参与的转换时,需特殊对待

dict----->list,tuple 仅能将字典的键转换,不能将值转换

list----->dict 列表内必须是列表或是元组,且其中只有两个元素时,可转

list = [['a', {1}], ('', 2), ('c', 3)]
print(dict(list))

输出:

{‘a’: {1}, ‘’: 2, ‘c’: 3}

5.2 集合和列表方法上的区别

正是由于集合的无序性,没有下标,故在方法上与列表有些差异。

  • append(添加元素) extend(实现列表的拼接)
  • insert(在某一下标插入元素) ----->listadd(添加元素) update(两个集合的合并) ---->set

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容! 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python集合set()使用的方法详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python集合set()方法如何使用

这篇文章主要讲解了“Python集合set()方法如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python集合set()方法如何使用”吧!在python3中按数据类型的可变与不可变
2023-06-29

python的set集合使用

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric differenc
2023-01-31

python中set集合常用方法

今天开始学习python的集合相关方法的使用:#集合的定义:集合是无序的,不重复的数据集合set={"123","456","11"}#add:向集合中填加元素Add an element to a set.set.add(563)prin
2023-01-31

javascript ES6中set集合、map集合使用方法详解与源码实例

这篇文章主要介绍了javascript ES6中set、map使用方法详解与源码实例,需要的朋友可以参考下
2022-12-10

Python中set方法的使用教程详解

在Python中,set是一种集合数据类型,表示一个无序且不重复的集合。本文主要为大家详细介绍了Python中set方法的使用,需要的可以参考一下
2023-05-18

Python中如何使用集合set

小编给大家分享一下Python中如何使用集合set,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!集合 (set)1、由不同的元素组成,用{ }大括号括起来,用,逗号隔开2、无序的3、集合中的元素必须是比可变类型4、集合会自
2023-06-25

Redis Set 集合的实例详解

Redis Set 集合的实例详解 Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录