zoukankan      html  css  js  c++  java
  • 013 集合

    简介

    • 英文名: set
    • “无序”:元素排名不分先后
    • “不重复”:一个集合中的元素都是独一无二的
    • 原来的标题:《集合:你不能两次进入同一个集合》
    • 现在的标题:《集合》
    • 更改原因:remove 之后仍然可以 add 进去

    创建

    >>> s1 = set()
    >>> s1
    set()
    >>> type(s1)
    <class 'set'>
    >>> 
    >>> s2 = {1, 2, 3, 4, 5}
    >>> s2
    {1, 2, 3, 4, 5}
    >>> type(s2)
    <class 'set'>
    >>> 
    

    ps

    • {} 被字典占用了,d = {} 创建的是字典

    特性

    概述

    • 因为集合内数据“无序”,所以无法使用索引与分片
    • 因为集合内数据“唯一”,所以可以用来排除重复数据
    • 集合内部只能放置可哈希数据,如 str, int, float, tuple, frozenset

    例1

    >>> s1 = {1, 2, 3}
    >>> s2 = {4, 5, 6}
    >>> s1 + s2
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        s1 + s2
    TypeError: unsupported operand type(s) for +: 'set' and 'set'
    >>> 
    

    例2

    • 看成概率统计就行
    >>> s1 = {1, 2, 3, 4, 5}
    >>> s2 = {4, 5}
    >>> s3 = {4, 5, 6, 7}
    >>> s1 - s2
    {1, 2, 3}
    >>> s1 - s3
    {1, 2, 3}
    >>> 
    

    例3

    >>> s = {1, 2, 3, "york", "fish"}
    >>> "york" in s
    True
    >>> 6 in s
    False
    >>> 
    

    遍历

    例1

    >>> s = {1, 2, 3, "york", "fish"}
    >>> for e in s:
        print(e, end=' ')
    
        
    1 2 3 york fish 
    >>> 
    

    例2

    >>> s = {(1, 2, 3), ("i", "york", "fish"), (4, 5, 6)}
    >>> for e in s:
        print(e)
    
        
    ('i', 'york', 'fish')
    (1, 2, 3)
    (4, 5, 6)
    >>> 
    >>> for i, j, k in s:
        print(i, j, k)
    
        
    i york fish
    1 2 3
    4 5 6
    >>> 
    

    生成式

    >>> s1 = {e for e in range(10)}
    >>> s1
    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    >>> 
    >>> s2 = {e for e in range(20) if e % 2 == 0}
    >>> s2
    {0, 2, 4, 6, 8, 10, 12, 14, 16, 18}
    >>> 
    

    内置方法

    • 17 个内置方法详见下篇

    其他方法

    len(), max(), min()

    >>> s = {e for e in range(10)}
    >>> len(s)
    10
    >>> max(s)
    9
    >>> min(s)
    0
    >>> 
    

    转换类型

    >>> s = {e for e in range(10)}
    >>> list(s)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> l = [e for e in range(10)]
    >>> set(l)
    {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
    >>> 
    
    • 元组类似 list

    frozenset

    • frozenset 即冰冻集合,是一种特殊的集合
    • frozenset 是不可以进行任何修改的集合
    • frozenset8 个内置方法,详见下下篇
    >>> # 简单举例
    >>> s = frozenset()
    >>> s
    frozenset()
    >>> type(s)
    <class 'frozenset'>
    >>> 
    
  • 相关阅读:
    delphiXE7关于android 检测屏幕是否处于关闭状态
    delphiXE7关于android API的使用和检测WIFI状态的问题
    关于Android下Delphi XE7获取通讯录的问题
    多线程操里操作webbrowser的 Frames
    关于游戏引擎
    今天博客开通了
    集合类型-集合
    编程语言
    live Python4笔记
    live Python3笔记
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10290648.html
Copyright © 2011-2022 走看看