美文网首页
008 Python语法之集合

008 Python语法之集合

作者: Luo_Luo | 来源:发表于2017-07-06 10:32 被阅读0次

    set集合

    集合特点

    1. 天生去重
    2. 无序,每次打印都无序
    3. 没有索引,循环只能for item进行遍历

    集合的操作

    set1 = {123, "abc", True}
    set2 = {123, "abc", False}
    

    差集

    set2.difference(set1)
    
    set2 - set1 = {False}
    

    并集

    set1.union(set2)
    
    set1 | set2 = {False, True, 'abc', 123}
    

    交集

    set1.intersection(set2)
    
    set1 & set2 = {'abc', 123}
    

    补集

    set1.symmetric_difference(set2)
    
    set1 ^ set2 = {False, True}
    

    子集

    set1.issubset(set2)
    

    父集

    set1.issuperset(set2)
    

    一些集合的方法

    set() 强制转换成集合,并去重复

    set1 = set((1,2,3,4))  # 将元组转换成集合
    set1 = set((1,2,3,4,4,3,2,1))  # 将元组转换成集合
    

    add(x) # 添加元素x

    set1.add(4)
    

    update(sqe)# 更新集合

    set1 = {1, 2, 3, 4}
    set1.update([7,5,8,0])
    

    update方法介绍

    1. 参数可以是集合,列表,字符串
    2. 返回值为None,会在原集合上进行更新

    remove(x) # 移除元素x

    set1.remove(4)
    

    remove方法介绍

    1. 删除,不存在就报错
    2. 第一个参数是移除的元素

    discard(x) # 删除元素

    myset.discard(1)    
    

    discard(x)

    1. 删除,不存在不会报错

    difference(set)

    newset = set1.difference(set2)
    

    difference方法介绍(差集)

    1. 显示set1中set2没有的元素
    2. 返回是一个新的集合

    利用枚举进行索印遍历

    for idx,iddata in enumerate(myset):
        print(idx, iddata)
    

    其他类型转换

    set1 = set()
    set1 = set([1,2,3,4,5,4,3,2,1])
    set1 = set((1,2,3,4,5,4,3,2,1))
    set1 = set({1:2,3:4})
    set1 = set("abcde")
    

    数据转化详解

    1. list转换成集合会将每一个元素去重之后添加进集合
    2. tuple也是会将每一个元素去重之后添加进集合
    3. 字典仅仅会将键全部存储在集合中
    4. 字符串会将每一个元素去重之后添加进集合

    不可变集合 frozenset <class 'frozenset'>

    set3 = frozenset([1, 2, 3, 4])
    set3.add(5)     # 会报错,不可变
    

    利用枚举进行索印遍历

    for idx,iddata in enumerate(myset):
        print(idx, iddata)
    

    相关文章

      网友评论

          本文标题:008 Python语法之集合

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