zoukankan      html  css  js  c++  java
  • 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错误。
  • 相关阅读:
    Vue之数据排序加签
    微信小程序之评分页面
    Vue之展示PDF格式的文档
    动态规划问题思考(DP)
    LitJson的使用
    c#事件管理器
    unity shader 学习
    unity ugui图片自适应文字内容大小
    unity3d各种OpenFileDialog操作
    ue4 使用3dsmax制作布料的插件及下载位置
  • 原文地址:https://www.cnblogs.com/emily-qin/p/6994482.html
Copyright © 2011-2022 走看看