• 【Python入门自学笔记专辑】——Python集合


    1.集合

    ​ 集合(set)是一种可迭代的、无序的、不能包含重复元素的数据结构。图中是一个班级的集合,其中包含一些学生,这些学生是无序的,不能通过序号访问,而且不能重复。image-20200301204931188


    提示:与序列比较,序列中的元素是有序的,可以__重复出现__,而且集合中的元素是无序的,且不能有重复的元素。

    序列强调的是有序,集合强调的是不重复,而且当没有重复的元素时,序列和集合可以互相替换。


    ​ 集合又分为**可变集合不可变集合**

    1.1创建可变集合

    ​ 可变集合类型是set,创建可变集合可以使用set([iterable])函数,或者用大括号{ }将元素括起来,元素之间用逗号分隔

    Python Shell实例:

    >>> a = {'张三', '李四', '王五'}
    >>> a
    {'张三', '李四', '王五'}
    >>> a = {'张三', '李四', '王五', '王五'}
    >>> a
    {'张三', '李四', '王五'}
    >>> #集合中如果有重复元素,创建时会自动删除重复元素↑
    ... 
    >>> len(a)
    3
    >>> b = { }
    >>> type(a)
    <class 'set'>
    >>> type(b)
    <class 'dict'>
    

    空的集合会变成字典,代码中b不是集合,是字典dict,如果要创建空集合,要使用set()函数。

    1.2修改可变集合

    ​ 可变集合类似于列表,可变集合的内容可被修改,可以插入删除元素。修改可变集合有几个常用的方法。

    • add(elem):添加元素,如果元素已经存在,则不能添加,不会抛出错误
    • remove(elem):删除元素,如果元素不存在,则会抛出错误
    • discard(elem):删除元素,如果元素不存在,不会抛出错误
    • pop():删除返回集合中任意一个元素,返回值是删除的元素
    • clear():清空

    Python Shell实例:

    >>> student_set = {'张三', '李四', '王五'}
    >>> student_set.add('董六')         # 随机添加元素,因为集合没有顺序
    >>> student_set
    {'张三', '董六', '李四', '王五'}
    >>> student_set.remove('董六')
    >>> student_set
    {'张三', '李四', '王五'}
    >>> student_set.remove('董六')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: '董六'
    >>> #报错,没有董六
    ... 
    >>> student_set.discard('董六')
    >>> student_set
    {'张三', '李四', '王五'}
    >>> #discard()不会抛出错误
    ... 
    >>> student_set.pop()
    '张三'
    >>> student_set
    {'李四', '王五'}
    >>> student_set.pop()
    '李四'
    >>> student_set
    {'王五'}
    >>> student_set.clear()
    >>> student_set
    set()
    

    1.3遍历集合

    ​ 集合是无序的,没有索引,不能通过下标访问。但可以遍历集合,访问集合的每一个元素。

    实例代码:

    #coding = utf-8
    
    student_set = {'张三', '李四', '王五'}
    
    for item in student_set:
        print(item)
    
    print('-----------')
    for i, item in enumerate(student_set):
        print('{0} - {1}'.format(i, item))
    

    输出结果

    张三
    李四
    王五
    ----------
    0 - 张三
    1 - 李四
    2 - 王五
    

    在这里插入图片描述

  • 相关阅读:
    uva 11078
    hdu1520(树状dp)
    从Markov Process到Markov Decision Process
    剑指Offer系列编程题详解全集
    L1正则和L2正则的区别详解
    协方差详解
    牛顿法和梯度下降法的比较
    C++ const各种用法总结
    Exploration and Exploitation
    RL Algorithm Components
  • 原文地址:https://www.cnblogs.com/coding365/p/12872310.html
Copyright © 2020-2023  润新知