zoukankan      html  css  js  c++  java
  • Python 集合(set)类型的操作——并交差

    介绍

    python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并、交、差、对称差等。

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

    基本操作

    >>> x = set("jihite")
    >>> y = set(['d', 'i', 'm', 'i', 't', 'e'])
    >>> x       #把字符串转化为set,去重了
    set(['i', 'h', 'j', 'e', 't'])
    >>> y
    set(['i', 'e', 'm', 'd', 't'])
    >>> x & y   #交
    set(['i', 'e', 't'])
    >>> x | y   #并
    set(['e', 'd', 'i', 'h', 'j', 'm', 't'])
    >>> x - y   #差
    set(['h', 'j'])
    >>> y - x
    set(['m', 'd'])
    >>> x ^ y   #对称差:x和y的交集减去并集
    set(['d', 'h', 'j', 'm'])

    函数操作

    >>> x
    set(['i', 'h', 'j', 'e', 't'])
    >>> s = set("hi")
    >>> s
    set(['i', 'h'])
    >>> len(x)                    #长度
    5
    >>> 'i' in x
    True
    >>> s.issubset(x)             #s是否为x的子集
    True
    >>> y
    set(['i', 'e', 'm', 'd', 't'])
    >>> x.union(y)                #交
    set(['e', 'd', 'i', 'h', 'j', 'm', 't'])
    >>> x.intersection(y)         #并
    set(['i', 'e', 't'])
    >>> x.difference(y)           #差
    set(['h', 'j'])
    >>> x.symmetric_difference(y) #对称差
    set(['d', 'h', 'j', 'm'])
    >>> s.update(x)               #更新s,加上x中的元素
    >>> s
    set(['e', 't', 'i', 'h', 'j'])
    >>> s.add(1)                  #增加元素
    >>> s
    set([1, 'e', 't', 'i', 'h', 'j'])
    >>> s.remove(1)               #删除已有元素,如果没有会返回异常
    >>> s
    set(['e', 't', 'i', 'h', 'j'])
    >>> s.remove(2)
    
    Traceback (most recent call last):
      File "<pyshell#29>", line 1, in <module>
        s.remove(2)
    KeyError: 2
    >>> s.discard(2)               #如果存在元素,就删除;没有不报异常
    >>> s
    set(['e', 't', 'i', 'h', 'j'])
    >>> s.clear()                  #清除set
    >>> s
    set([])
    >>> x
    set(['i', 'h', 'j', 'e', 't'])
    >>> x.pop()                    #随机删除一元素
    'i'
    >>> x
    set(['h', 'j', 'e', 't'])
    >>> x.pop()
    'h' 
  • 相关阅读:
    网站学习网站
    ajax利用json进行服务器与客户端的通信
    Json 数据
    Servlet 编程 请求的转发
    Servlet 编程 简单流程处理(重定向)
    Servlet 编程 http请求类型
    myeclipse10 .jsp将表单提交给.java(form网页与后台通信初识)
    myeclipse10 将一个java工程合并到web工程
    myeclipse 第一个web project
    JAVA字符串转日期或日期转字
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/4511214.html
Copyright © 2011-2022 走看看