• Python 元組 Tuple


    元組 Tuple 宣告

    元組是用逗號分隔的一列值:

    >>> t = 'a',1,'b',2,'c',3
    >>> t
    ('a', 1, 'b', 2, 'c', 3)
    >>> t = ('a',1,'b',2,'c',3)
    >>> t
    ('a', 1, 'b', 2, 'c', 3)

     1. 元組是不可變的

     >>> t[0] = 'y'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment

    但可將一個元組替換另一個元組,例如:

    >>> t = 'a',1,'b',2,'c',3
    >>> t
    ('a', 1, 'b', 2, 'c', 3)
    >>> t = ('x',) + t[1:]
    >>> t
    ('x', 1, 'b', 2, 'c', 3)
    >>>

    2. 元組賦值

    >>> X = 2
    >>> Y = 3
    >>> X,Y = Y,X
    >>> X
    3
    >>> Y
    2

    這樣的寫法很簡潔漂亮,而不是一般採用下列的寫法:

    Z = X

    X = Y

    Y = Z

    另一個例子是將一個字串拆解,分別賦值:

     >>> email_address = 'john@company.com'
    >>> name,company = email_address.split('@')
    >>> name
    'john'
    >>> company
    'company.com'

     3. 元組做為返回値

     >>> t = divmod(10,3)
    >>> t
    (3, 1)
    >>> quot,rem = divmod(10,3)
    >>> quot
    3
    >>> rem
    1

     4. 可變長度參數元組

     >>> def print_all(*args):
    ...     print(args)
    ...
    >>> print_all(1,2,3)
    (1, 2, 3)
    >>> print_all(1,2,3,4,5)
    (1, 2, 3, 4, 5)

     >>> t = (10, 3)
    >>> divmod(*t)
    (3, 1)

     5. 列表與元組

    >>> x = 'abc'
    >>> y = '123'
    >>> zip(x,y)
    <zip object at 0x00000000021B10C8>

    >>> id(x)
    30795008
    >>> id(y)
    35332200


    >>> for c in zip(x,y):
    ...     print(c)
    ...
    ('a', '1')
    ('b', '2')
    ('c', '3')


    >>> list(zip(x,y))
    [('a', '1'), ('b', '2'), ('c', '3')] 

     >>> t = [('a',1),('b',2),('c',3)]

    >>> for letter,number in t:
    ...     print(letter,number)
    ...
    a 1
    b 2
    c 3

     6. 字典與元組

     元組為一個列表,轉化為字典:

    >>> t = [('a',1),('b',2),('c',3)]
    >>> d = dict(t)
    >>> d
    {'a': 1, 'b': 2, 'c': 3}

     將字典以 items 方法,轉化為元組:

    >>> m = d.items()
    >>> m
    dict_items([('a', 1), ('b', 2), ('c', 3)])

     以 zip 方法,快速創建字典:

    >>> n = dict(zip('abc',range(3)))
    >>> n
    {'a': 0, 'b': 1, 'c': 2}

    /end

  • 相关阅读:
    GeoHash
    CMake官方教程翻译文档
    常用开源系统
    Python Tools
    CMake 笔记
    Nginx 多进程连接请求/事件分发流程分析
    连麦方案中各条流之间时间戳同步问题
    音视频重新编码时间戳同步问题
    基于网络流音视频包的音视频解码思路
    协程库st(state threads library)原理解析
  • 原文地址:https://www.cnblogs.com/chingchangmeng/p/11389184.html
Copyright © 2020-2023  润新知