zoukankan      html  css  js  c++  java
  • 第六节课:元组和集合


    第六节课:元组合集合

    首先,看一下英文对应词汇
    “迭代”-》"iteration"->(computer science) a single execution of a set of instructions that are to be repeated; "the solution took hundreds of iterations"
    “递归”-》“recurse"->To execute a procedure recursively

    现在谈一下对于这两个词汇的理解:
    "迭代“, 指重复执行一个指令,用在python的list里,是指对重复调用list对象,将调用list对象返回的数据作为参数传给一个函数并由返回的结果组成一个新的list;
    “递归”,指一个函数执行过程中调用了自己,是对一种计算方法的描述,对于python的list的调用显然用“递归”这个词汇不合适。

    从字面上理解,“迭代”和“递归”也是不同的概念,“迭代”是重复某一过程,“递归”是调用自身,即“迭代”是循环操作,“递归”是嵌套操作。


    可迭代对象: 就是说存在不重复的遍历其内部每一个子项的方法, 再简单点,就是是否能遍历.

    有 __iter__()或者__next__()或者__getitem__() 方法的 都是可迭代对象

    http://bbs.chinaunix.net/thread-1756603-1-1.html

    一、元祖:
    1. 有序的集合
    2. 通过偏移量来索引
    3. 属于不可变对象,不能在原地修改内容,没有排序、修改等操作

    那为什么有元祖呢?
    元祖不可变的好处: 保证数据的安全,比如我们将列表传给一个不熟悉的方法或者数据接口的时候,不知道方法或者数据接口是否会改变我们的输入数据。这时如果不想改变,这时候用元祖就可以了。

    a = (1,2,3,'a','b','c')
    a1= list(a)

    二、集合:集合是没有顺序概念的,所以不能用切片或者索引操作.

    1. 创建一个集合。 可变集合 set() 不可变集合 frozenset()
    2. 添加操作: add, update
    3. 删除 remove
    4. 成员关系:in not in
    5. 交集 & 并集 | 差集 -
    7. set去重,列表内容元素重复

    2.1 可变集合

    a.add
    a.update
    a.remove

    示例演示

    >>> b = set("abc")
    >>> b
    set(['a', 'c', 'b'])
    >>> b.add("python")
    >>> b
    set(['a', 'python', 'c', 'b'])
    >>> b.remove("python")
    >>> b
    set(['a', 'c', 'b'])
    >>> b.update("python")
    >>> b
    set(['a', 'c', 'b', 'h', 'o', 'n', 'p', 't', 'y'])
    >>> b = set("abc")
    >>> b.add("python")
    >>> b
    set(['a', 'python', 'c', 'b'])
    >>> b.update("python")
    >>> b
    set(['a', 'c', 'b', 'python', 'h', 'o', 'n', 'p', 't', 'y'])
    >>> a = (1,2,3,'a','b','c')
    >>> list(a)
    [1, 2, 3, 'a', 'b', 'c']
    >>> tuple(list(a))
    (1, 2, 3, 'a', 'b', 'c')

    2.2 不可变集合

    a = frozenset('abc')
    a.add 报错
    a.remove 报错

  • 相关阅读:
    element表单中一个elformitem下多个formitem项校验(循环校验)
    vscode配置
    git push时提示错误 sign_and_send_pubkey: no mutual signature supported
    syncthing文件同步网盘配置
    MQTT服务搭建和简单使用
    python脚本避免被多次执行
    Hadoop集群对datanode宕机后的处理机制源码阅读
    工作冲突和低谷
    职场的帮助
    测试总体思想
  • 原文地址:https://www.cnblogs.com/huiming/p/5528912.html
Copyright © 2011-2022 走看看