• Python学习杂记_9_集合操作


    集合
    集合是由花括号括起来的一组数据,特点是“数据不重复”,“无序”,“类型不统一”。
    其中数据不重复是它最重要的特点,常常用于“去重”操作,Set(list)方法可以把列表强制转换成集合。

    集合的一些操作:

    1. 把列表转换为集合 # 强制类型转换
    list = [‘abc’ , 58.5, True]
    print(set(list))

    2. 取交集 # 两个集合共有的部分
    list1 = {1,2,3,4,5,6,9,10}
    list2 = {2,3,4,5,6,1}
    list3 = {1,2,3}
    print(list1.intersection(list2))
    print(list1 & list2)

    3. 取并集 # 把集合合起来之后去重
    print(list1.union(list2))
    print(list1 | list2)

    4. 取差集 # 两个集合做差,返回被减数去掉减数后的那部分数据
    print(list1.difference(list2))
    print(list1 - list2) # 取list1有且list2没有的那部分


    5. 取对称差集 # 输出两个列表中都没有的值,也就是把两个集合中相同的去掉
    print(list1.symmetric_difference(list2))
    print(list1 ^ list2)

    6.几个判断操作
    print(list3.issubset(list1)) # 判断list3是不是list1的子集
    print(list1.issuperset(list3)) # 判断list1是不是list3的父集
    print(list1.isdisjoint(list3)) # 判断list1和list3是否有交集

    7. 其他操作
    list1.add(888) # 添加元素,不返回值,原集合list1被改变,简单添加单个数值或字符串
    list1.update([777,666,666]) # 添加一个或多个元素,以列表形式添加,列表里不能有布尔值
    list1.remove(777) # 删除元素,如果元素不存在会报错
    list1.pop() # 删除一个随机的元素,并返回删除的元素
    list1.discard('dddd') # 如果删除的元素存在,删除,不存在不做处理

    引用一组对集合操作的总结: http://www.jb51.net/article/57214.htm
    经典片段:

    去重:
    >>> lst = [1,2,3,4,1]
    >>> print list(set(lst))
    [1, 2, 3, 4]

    基本操作:
    t.add('x')            # 添加一项
    s.update([10,37,42])     # 在s中添加多项
    t.remove('H')          # 删除一项
    len(s)             # set 的长度
    x in s              # 测试 x 是否是 s 的成员
    x not in s          # 测试 x 是否不是 s 的成员
    s.issubset(t)
    s <= t              # 测试是否 s 中的每一个元素都在 t 中
    s.issuperset(t)
    s >= t             # 测试是否 t 中的每一个元素都在 s 中
    s.union(t)
    s | t              # 返回一个新的 set 包含 s 和 t 中的每一个元素
    s.intersection(t)
    s & t              # 返回一个新的 set 包含 s 和 t 中的公共元素
    s.difference(t)
    s - t              # 返回一个新的 set 包含 s 中有但是 t 中没有的元素
    s.symmetric_difference(t)
    s ^ t              # 返回一个新的 set 包含 s 和 t 中不重复的元素
    s.copy()            # 返回 set “s”的一个浅复制
  • 相关阅读:
    linux crontab 常用时间设置
    远程连接 mysql 数据库连接不上的解决方案
    Caffe搭建:Ubuntu14.04 + CUDA7.0 + opencv3.0 + Matlab2014A
    Ubuntu中sublime和Foxit Reader不能使用中文输入法解决方案
    python学习:python的星号(*)和双星号(**)用法
    Latex使用:在latex中添加算法模块
    Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow
    Caffe使用: Ubuntu 14.04(x64) 从cuda 7.0 升级到 cuda8.0
    Git使用:Linux(Ubuntu 14.04 x64)下安装Git并配置连接GitHub
    Git使用:安装,使用及常用命令整理
  • 原文地址:https://www.cnblogs.com/houzhizhe/p/6946005.html
Copyright © 2020-2023  润新知