• python入门 集合(四)




    集合

    集合是一个无序的不重复元素序列,可以迭代,也可以修改。集合迭代的时候元素是随机的。

    集合通常用来 membership testing, 去重, 也可以用来求交集并集补集。

    介绍一下如何创建集合和集合常见的用法。

    创建集合

    	>>> s1 = set()
    	>>> print(s1)
    	set()
    	
    	>>> l1 = [1, 2, 3, 4, 5, 4, 3]
    	>>> s2 = set(l1)
    	>>> print(s2)
    	{1, 2, 3, 4, 5}
    	#可以看到集合可以用来去重
    	
    	>>> s3 = set('jwang')
    	>>> print(s3)
    	{'n', 'w', 'j', 'g', 'a'}
    	# 可以看到集合迭代的时候元素是随机的
    	
    	>>> s4 = set(["C", “C++”, “Python”])
    	>>> print(s4)
    	{'C', 'Python', 'C++'}
    

    修改集合

    1. 添加 add

      	>>> print(s2)
      	{1, 2, 3, 4, 5}
      	>>> s2.add(6)
      	>>> print(s2)
      	{1, 2, 3, 4, 5, 6}
      	>>> s2.add((7,8))
      	>>> print(s2)
      	{1, 2, 3, 4, 5, 6, (7, 8)}
      
    2. 更新:通过传入一个列表来更新 update(list)

      	>>> print(s2)
      	{1, 2, 3, 4, 5, 6, (7, 8)}
      	>>> s2.update([6, 0])
      	>>> s2
      	{0, 1, 2, 3, 4, 5, 6, (7, 8)}
      	>>> s2.update([7, 8, 9], [10, 11])
      	>>> s2
      	{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, (7, 8)}
      	>>> 
    

    更新:通过传入一个集合来更新 update(set)

      >>> s2.update({100, 200})
      >>> s2
    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 200, 100, (7, 8)}
    
    1. 删除 remove(val) discard(val)

      不同点是remove在元素不存在时会报错,discard什么也不做。

        >>> s2.remove(0)
        >>> s2
      	{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 200, 100, (7, 8)}
        >>> s2.discard(0)
        >>> s2.remove(0)
      	Traceback (most recent call last):
      	  File "<stdin>", line 1, in <module>
      	KeyError: 0
      

    一些其他方法

    	# copy 浅复制
    	>>> s3 = s2.copy()
    	>>> s3
    	{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 200, 100, (7, 8)}
    	# clear 清空
    	>>> s3.clear()
    	>>> s3
    	set()
    	# set pop(),随机删除一个元素,并返回
    	>>> s = set([1, 2, 3])
    	>>> s.pop()
    	1
    	>>> s
    	{2, 3}
    

    集合间操作

    1. 交集

      >>> s2 = set([1, 2, 3, 4, 5, 10, 15, 22])
      >>> s1 = set([1, 2, 3, 4, 5, 6, 7, 8])
      >>> s1 & s2
      {1, 2, 3, 4, 5}
      >>> s1.intersection(s2)
      {1, 2, 3, 4, 5}
      
    2. 求集合的不同

      >>> s1.difference(s2)
      {8, 6, 7}
      >>> s2.difference(s1)
      {10, 22, 15}
      
    3. 是不是子集

      >>> s3 = set([6, 7, 8])
      >>> s2.issubset(s2)
      True
      >>> s2.issubset(s1)
      False
      >>> s1.issuperset(s3)
      True
      



  • 相关阅读:
    H5页面引用百度地图绘制车辆历史轨迹
    js 银行卡号校验
    PC页面客服微信QQ弹窗(鼠标移入显示移出隐藏)
    js 识别二维码
    js 生成二维码
    apicloud APP沉浸式状态栏设置
    微信公众号页面video标签播放视频兼容问题
    EasyUI 导出数据表格 (Export DataGrid)
    c#部署程式到服務器插入數據到oracleDB亂碼
    asp.net JS使用MVC下載(導出Excel)
  • 原文地址:https://www.cnblogs.com/wangjiale1024/p/10301619.html
Copyright © 2020-2023  润新知