• Python的set集合


      set集合也用{}表示,set中的元素是不重复的、无序的,且它里面的元素必须是可hash的(int,str,tuple,bool),set是可变的。

      1.使用set去重

    1 m = [1, '苹果', '3', '苹果', 3, 1, '3']
    2 s = list(set(m))
    3 print(s)

    ['苹果', 1, '3', 3]

      2.set集合增删查改
      1)增  使用add

    1 s = {'成龙', '李小龙', '甄子丹', '李连杰'}
    2 s.add('周星驰')
    3 print(s)

    {'周星驰', '李连杰', '甄子丹', '李小龙', '成龙'}

            使用update  ps:迭代添加

    1 s = {'成龙', '李小龙', '甄子丹', '李连杰'}
    2 s.update('周星驰')
    3 print(s)

    {'甄子丹', '驰', '李连杰', '周', '成龙', '星', '李小龙'}

      2)删  使用pop()随机删除一个

    1 s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s.pop()
    3 print(s)

    {'甄子丹', '驰', '李连杰', '周', '成龙', '星', '李小龙'}

             使用remove()直接删除元素

    1 s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s.remove('甄子丹')
    3 print(s)

    {'周星驰', '李连杰', '李小龙', '成龙'}

            使用clear()清空集合

    1 s = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s.clear()
    3 print(s)

    set()

      3)修改

      set集合中的数据没有索引,也没办法去定位一个元素,所以没办法直接修改,可以采用先删除后添加的方式来完成修改操作。

      4)set集合是一个可迭代对象,可以进行for循环。

      3.常用操作

      1)交集  &

    1 s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
    3 print(s1 & s2)
    4 print(s1.intersection(s2))

    {'甄子丹', '周星驰'}

      2)并集  |

    1 s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
    3 print(s1 | s2)
    4 print(s1.union(s2))

    {'李连杰', '李小龙', '周星驰', '赵本山', '成龙', '潘长江', '甄子丹'}

      3)差集  -

    1 s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
    3 print(s1 - s2)
    4 print(s1.difference(s2))

    {'李小龙', '李连杰', '成龙'}

      4)反交集  ^

    1 s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s2 = {'甄子丹', '潘长江', '周星驰', '赵本山'}
    3 print(s1 ^ s2)
    4 print(s1.symmetric_difference(s2))

    {'李连杰', '成龙', '李小龙', '赵本山', '潘长江'}

      5)子集

    1 s1 = {'甄子丹', '周星驰'}
    2 s2 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    3 print(s1 < s2)
    4 print(s1.issubset(s2))

    Ture

      6)超集

    1 s1 = {'成龙', '李小龙', '甄子丹', '李连杰', '周星驰'}
    2 s2 = {'甄子丹', '周星驰'}
    3 print(s1 > s2)
    4 print(s1.issuperset(s2))

    Ture

      4.frozenset
      可用frozenset定义一个不可变的集合。

  • 相关阅读:
    KooTeam
    nopCommerce架构分析系列(一)nopCommerce简介
    NServiceBus最流行的开源企业服务总线 for .Net资源学习篇
    How to become a software architect?
    DotNetMQ: A Complete Message Queue System for .NET
    CSLA.Net专注电子商务 – Focus on eCommerce
    .net framework从1.0说到4.0
    ERP/SCM
    泛型接口的协变和逆变
    HTML5学习
  • 原文地址:https://www.cnblogs.com/heshike/p/9416520.html
Copyright © 2020-2023  润新知