zoukankan      html  css  js  c++  java
  • python元组和序列

    元组(Tuples) 和序列(Sequences 

    我们知道链表和字符串有很多通用的属性,例如索引和切片操作。它们是序列类型中的两种。因Python是一个在不停进化的语言,也可以加入其它的序列类型,这里有另一种标准序列类型:元组。

    一个元组由数个逗号分隔的值组成,例如:

    >>> t = 12345, 54321, 'hello!'
    >>> t[0]
    12345
    >>> t
    (12345, 54321, 'hello!')
    >>> # Tuples may be nested:
    ... u = t, (1, 2, 3, 4, 5)
    >>> u
    ((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

    如你所见,元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可能有或没有括号都可以,不过经常括号都是必须的(如果元组是一个更大的表达式的一部分)。

    元组有很多用途。例如(x, y)坐标点,数据库中的员工记录等等。元组就像字符串,不可改变:不能给元组的一个独立的元素赋值(尽管你可以通过联接和切片来模仿)。也可以通过包含可变对象来创建元组,例如链表。

    一个特殊的问题是构造包含零个或一个元素的元组:为了适应这种情况,语法上有一些额外的改变。一对空的括号可以创建空元组;要创建一个单元素元组可以在值后面跟一个逗号(在括号中放入一个单值是不够的,否则则是一根字符串而已)。丑陋,但是有效。例如:

    >>> empty = ()
    >>> singleton = 'hello',    # <-- note trailing comma
    >>> len(empty)
    0
    >>> len(singleton)
    1
    >>> singleton
    ('hello',)

    语句 t = 12345, 54321, 'hello!' 元组封装(sequence packing的一个例子:值 12345 54321 和 'hello!' 被封装进元组。其逆操作可能是这样:

    >>> x, y, z = t

    这个调用被称为序列拆封非常合适。序列拆封要求左侧的变量数目与序列的元素个数相同。要注意的是可变参数(multiple assignment

    )其实只是元组封装和序列拆封的一个结合!

    这里有一点不对称:封装多重参数通常会创建一个元组,而拆封操作可以作用于任何序列。

  • 相关阅读:
    ASP.NET- 查找Repeater控件中嵌套的控件
    Oracle- 表的管理
    Oracle- PL/SQL DEV工具的使用收集
    Oracle- PL/SQL DEV的远程配置
    Oracle- 提示查询结果不可更新,请使用...更新结果。
    Oracle- 存储过程和异常捕捉
    MSSQLSERVER数据库- SP_EXECUTESQL的使用
    Oracle- 用户管理
    Oracle- 初识
    c语言交换两个变量的值
  • 原文地址:https://www.cnblogs.com/youxin/p/3059702.html
Copyright © 2011-2022 走看看