• Python之数据结构:集合


    一、set集合
    1、集合是一个无序不重复元素集,有去重的作用
    set集合类需要的参数必须是迭代器类型的,如:序列、字典等,然后转换成无序不重复的元素集。由于集合是不重复的,所以可以对字符串、列表、元组进行去重操作。
    (1)创建
    s1=set('This is string') ([])
    set1=set('python') 结果:set(['h', 'o', 'n', 'p', 't', 'y'])
    s2=set([1,2,3])
    s3=set((1,2,3,4,3,2)) set([1,2,3,4])
    s4=set({1:2,2:3,6:6}) 字典只会把key值列表(相当于dict.keys()返回值)赋值给set set([1,2,6])
    注意数值类型不能作为集合的参数,如int类型。
    (2)添加元素
    add() 把元素作为整体添加
    update() 把元素中的子元素一个个添加
    s2.add('abc') set([1,2,3,'abc'])
    s2.update('abc') set(['a',1,2,3,'b','c'])
    (3)删除元素
    a、remove()
    s2.remove('c') set (['a',1,2,3,'b'])
    如果'c'不存在,会抛出异常
    b、discard(value)
    s2.discard(3)
    c、pop()
    s2.pop() 确保集合有元素,删除的元素不确定是哪个。如果为空引发KeyError错误
    (4)遍历集合
    for i in s2:
    print i
    (5)
    枚举enumerate()
    for index,elem in enumerate(2):
    print index,':',elem
    类型转化:
    str(s2)
    list(s2)
    tuple(s2)
    (6)清空集合
    s1.clear()
    (7)复制集合
    s6=s2.copy()
    (8)结合的长度
    len(s2)
     
    2、集合的特殊操作
    (1)交集、并集、差集
    s1=set([1,2,3])
    s2=set([2,3,4,5])
    s3=s1 & s2 交集 set([2,3])
    s4=s1 | s2 并集 set([1,2,3,4,5])
    s5=s1-s2 差集 在s1中但不在s2中 set([1])
    s6=s1.difference(s2) s6的结果 set([1]) 同s5
     
    (2) > 、>= < <= !=
    print s1>=s2
     
    (3)
    issupperset()父集
    s11=set([1,2])
    print s1.issupperset(s11) Ture s1是否为s11的父集
    print s1.issupperset(s2) False
    issubset() 子集
    s1.issubset(s2) s1是否为s2的子集
     
    (4)in 和not in 成员运算符
    if s1 in s2:
    3、不可变集合 frozenset()
    fs=frozenset([1,2,3])
    如果试图改变不可变集合中的元素,就会报AttributeError错误。
  • 相关阅读:
    windows mobile licence
    通过acme.sh生成泛域名证书
    枚举值为何为1、2、4、8、16....
    script 解决 跨域访问
    强大的json字符串对象,转化为object对象
    使用maven jetty调试web程序
    web上实现起点到终点的抛物线轨迹运动——补充
    实现2个有序数组的排序
    maven axis2简单部署webservice
    使用javamail发送邮件
  • 原文地址:https://www.cnblogs.com/emily-qin/p/6994482.html
Copyright © 2020-2023  润新知