【Day 07】tuple 介绍!

前言

今天要来继续接着介绍 tuple 的使用方法,包含了 Unpack(拆包),还有取出 tuple 内值的方法,

tuple

  • Unpack 拆包:一次把资料同时指派给多个变数,这个过程称为 Unpacking 拆包。

    • tuple 一次给多个变数值
    color = ('Blue', 'Red', 'Yellow')
    a, b, c = color
    print(a)
    print(b)
    print(c)
    

  • Unpack 还可以使用 * 来搭配使用
    如果变数的数量小於 tuple 的数量,有 * 的变数会把其他的的蒐集起来。

    color = ('Blue', 'Red', 'Yellow', 'Orange', 'Green', 'Brown')
    (a, b, *c) = color    # c 把剩下的元素都带走
    print(a)
    print(b)
    print(c)
    

    如果是 * 中间的元素,会把前後的先分配好,剩余的资料都给有 * 的变数

    color = ('Blue', 'Red', 'Yellow', 'Orange', 'Green', 'Brown')
    (a, *b, c) = color    # b 把剩下的元素都带走
    print(a)
    print(b)
    print(c)
    

  • tuple 里面的元素也可以是另一个 tuple

    color = ('Blue', 'Red', 'Yellow')
    color1 = (color, 'Orange', 'Green')    # 双层 tuple
    print(color1)
    

  • 索引值(index)取出 tuple 的值。

    • 依照索引值取值,跟 string 的概念一样,一样可以用负数
    • 如果有两层 tuple ,可以用 tuple[][] 来找出
    color = ('Blue', 'Red', 'Yellow')
    color1 = (color, 'Orange', 'Green')
    print(color1[1])     # 取出 color1 的第 1 个元素(起始为 0)
    print(color1[-2])    # 取出 color1 的第 -2 个元素(起始为 -1)
    print(color1[0])     # 取出 color1 的第 0 个元素,就是 color
    print(color1[0][1])  # 取出 color1 的第 0 个元素 color 的第 1 个元素
    

  • Range of indexes:取出一组 tuple 的范围。

    color = ('Blue', 'Red', 'Yellow', 'Orange', 'Green', 'Brown')
    print(color[2:4])    # 取出 tuple[2] 到 tuple[3] 的元素
    print(color[1:])     # 取出 tuple[1] 到最後一个元素
    print(color[:4])     # 取出 tuple[0] 到第 3 个元素
    print(color[-5:-2])  # 取出 tuple[-5] 到 tuple[-3] 的元素,相当於 tuple[1:4]
    

  • 使用 tuple 交换两数。

    a = 6
    b = 9
    print('before a =', a, 'b =', b)
    a, b = b, a    #等同於 (a, b) = (b, a)
    print('after a =', a, 'b =', b)
    

待续...


<<:  Day 22 : 模型优化 - 知识蒸馏 Knowledge Distillation

>>:  电子书阅读器上的浏览器 [Day22] 翻译功能 (IV) 内容分页

不只懂 Vue 语法:如何透过路由实现跨页面传递资料?

问题回答 在跳转页面时,可以透过路由物件里 params 或 query 来传递资料,也可以使用各种...

Day 7. 介绍一下VSCode-打code好帮手

Visual Studio Code(简称VS Code)是一个由微软开发的,同时支援Windows...

【Day 01】中台架构浪潮与启示

前言 近几年中国掀起一股『中台架构』热潮,大型企业纷纷导入此一概念,重整战略资讯架构,建构业务、数据...

Javascript 传值传址&深浅拷贝

前言 因为公司前端资料已经处理成单层结构,所以都没注意到浅拷贝、深拷贝的实际差别。 在读完高手文章後...

Pascal 语言和你 SAY HELLO!!

第二十七天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,...