zoukankan      html  css  js  c++  java
  • Python中的Sets数据结构

    Python的set和其他语言类似,是一个无序不重复元素集,基本功能包括关系测试和消除重复元素
    集合对象支持union(联合),intersection(交),difference(差)和sysmmetric difference(对称差集)等集合运算。

    要创建集合,可使用set()函数并像下面这样提供一系列的项:

    s = set([3,5,9,10])      #创建一个数值集合
    t = set("Hello")         #创建一个唯一字符的集合

    基本操作

    sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作。

    t.add('x')            # 添加一项
    s.update([10,37,42])  # 在s中添加多项
    t.remove('H')         # 使用remove()可以删除一项
    len(s)                # set 的长度
    x in s                # 测试 x 是否是 s 的成员
    s.issubset(t)         # 测试是否 s 中的每一个元素都在 t 中,返回True / False
    s.issuperset(t)       # 测试是否 t 中的每一个元素都在 s 中

    集合运算

    a = t | s          # t 和 s的并集
    b = t & s          # t 和 s的交集
    c = t – s          # 求差集(项在t中,但不在s中)
    d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)
    
    >>> x = set('spam')
    >>> y = set(['h','a','m'])
    >>> x, y
        (set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))
    
    >>> x & y # 交集
        set(['a', 'm'])
    >>> x | y # 并集
        set(['a', 'p', 's', 'h', 'm'])
    >>> x - y # 差集
        set(['p', 's']) 

    小应用: 去除大量列表里重复元素
    这个问题可以用hash来解决,这里可以用set解决如下:

    >>> a = [11,22,33,44,11,22]
    >>> b = set(a)
    >>> b
    set([33, 11, 44, 22])
    >>> c = [i for i in b]
    >>> c
    [33, 11, 44, 22]
  • 相关阅读:
    Python3简单的输入输出及内置函数查看
    Python绘制3d螺旋曲线图实例代码
    教女朋友学Python运行环境搭建
    初级模拟电路:3-4 共基放大电路(直流分析)
    初级模拟电路:3-3 共基组态
    初级模拟电路:3-2 BJT的工作原理
    初级模拟电路:3-1 BJT概述
    初级模拟电路:2-6 倍压电路
    初级模拟电路:2-5 钳位器
    初级模拟电路:2-4 限幅器
  • 原文地址:https://www.cnblogs.com/xiaoxuch-zhl/p/3531562.html
Copyright © 2011-2022 走看看