美文网首页Python学习笔记
Python 基础 set集合

Python 基础 set集合

作者: 卢卡Lucar | 来源:发表于2018-06-15 16:56 被阅读10次

    title: set 集合

    set 集合

    set : 与dict相比,set是一组存储key的集合,但不存储value
    本质:一个无序的及元素不重复的集合

    一、创建

    #创建set需要将一个list或tuple或dict作为参数传入
    set1 = set([1,2,3,4])
    print(set1)
    print(type(set1))
    
    # 重复的元素在set中会被自动过滤掉,只保留一份
    set2 = set([1,2,3,4,2,2,2,3,3,1,4,5,6,2,1])
    print(set2)  # {1,2,3,4,5,6}
    
    # tuple
    set3 = set((1,2,3,2,1))
    print(set3)
    
    # dict
    set4 = set({"a":1, "b":2, "c":3})
    print(set4)  # 只保留字典的key值  # {'a','b','c'}
    
    dic5 = {"a":1, "b":2, "c":3}
    set5 = set(dic5.values())
    print(set5)
    
    # 数据类型不匹配
    # set6 = set(100)
    # print(set6)  # TypeError: 'int' object is not iterable(迭代器)
    # 迭代器就是一种集合数据类型
    
    

    二、添加数据

    set7 = set([1,2,3,4])
    # 1、add(obj): 添加数据:在set中直接添加一个数据,add添加元素时,
    # 只能添加不可变类型的数据
    print(set7)  # {1,2,3,4}
    set7.add(5)
    print(set7)
    set7.add(1)  # 可以添加重复的数据,但是没有效果
    print(set7)
    set7.add("abc")
    print(set7)
    set7.add((1,2))
    print(set7)
    # 添加失败,因为add只能添加不可变的数据,而list是可变的
    # set7.add([1,2])
    # print(set7)
    # 添加失败,因为add只能添加不可变的数据,而dict是可变的
    # set7.add({"a":1})
    # print(set7)
    
    
    # 2、update(Iter):添加数据:在set中打碎添加集合中数据
    # Iter:list,tuple,string,dict
    set8 = set([1,2,3])
    set8.update([8,9])
    print(set8)
    set8.update((10,1))
    print(set8)
    set8.update("PYC")
    print(set8)
    set8.update({"a":89, "b":99})  # dict只能加入key值
    print(set8)
    # set8.update(100)  # 错误,因为int类型不是集合类型
    # print(set8)
    
    

    三、删除数据 remove

    set9 = set([1,2,3,4])
    print(set9)
    set9.remove(3)
    print(set9)
    
    # 四、注意:set是无序的,不支持下标的方式
    # TypeError: 'set' object does not support indexing
    # print(set9[0])
    
    

    五、集合的操作

    set10 = set([1,2,3,4,5])
    set11 = set([4,5,6,7,8])
    # 1、&  交集
    set12 = set10 & set11
    print(set12)
    # 2、|   并集
    set13 = set10 | set11
    print(set13)
    # 3、^   补集
    set14 = set10 ^ set11
    print(set14)
    
    

    六、遍历set

    for i in set10:
        print(i)
    

    数据类型转换

    # list->set
    set1 = set([1,2,3])
    print(set1)
    print(type(set1))  # set
    # tuple->set
    set2 = set((2,3,4))
    print(set2)
    # set->list
    list3 = list(set1)
    print(list3)
    # set->tuple
    tuple4 = tuple(set2)
    print(tuple4)
    # list->tuple
    tuple5 = tuple(list3)
    print(tuple5)
    # tuple->list
    list6 = list(tuple5)
    print(list6)
    
    
    
    # 将下面的list中重复的数据删除
    list11 = [1,2,3,6,3,2,1,1,1,9]
    set11 = set(list11)  # 过滤重复数据
    list12 = list(set11)
    print(list12)
    
    

    枚举遍历

    list1 = [1,2,3,4,5]
    
    # 枚举遍历:可以将下标及元素同时遍历
    for i in enumerate(list1):
        print(i)
    
    # index:下标   data:当前下标对应的数据
    for index,data in enumerate(list1):
        print(index, data)
    
    # tuple
    tuple1 = (1,2,3)
    for i in enumerate(tuple1):
        print(i)
    
    for index,data in enumerate(tuple1):
        print(data)
    # dict
    dic1 = {"a":1,"b":2}
    for i in enumerate(dic1):
        print(i)
    
    # index:下标  data:key值
    for index,data in enumerate(dic1):
        print(index,data)
    
    # set
    set1 = set([1,2,3])
    for index,data in enumerate(set1):
        print(index, data)
    
    
    # 判断数据类型
    int1 = 100
    print(type(int1))  # <class 'int'>
    # 判断当前数据是否为某种类型:返回boolean值
    print(isinstance(int1, list))
    # int float str list tuple dict set bool NoneType
    print(type(None))
    
    
    list12 = [1, [4,5,7], 8, "abc"]
    for i in list12:
        # print(i)
        if isinstance(i, list) or isinstance(i, tuple) or isinstance(i, set):
            for j in i:
                print(j)
        else:
            print(i)
    

    相关文章

      网友评论

        本文标题:Python 基础 set集合

        本文链接:https://www.haomeiwen.com/subject/zppmeftx.html