温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-03-19 08:58:46 来源:亿速云 阅读:202 作者:iii 栏目:开发技术

这篇文章主要讲解了“Python集合set()方法如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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

    感谢各位的阅读,以上就是“Python集合set()方法如何使用”的内容了,经过本文的学习后,相信大家对Python集合set()方法如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI