zoukankan      html  css  js  c++  java
  • python中的tuple

    python中Tuple详解

    另外, 还有一个和list 很像的数据tuple.中文叫元组.他和list的主要区别就是, tuple是一开始就定义好的, 即, assign first,之后就永远不能被改变了. 所以, 一般全局比较重要的数据,我们都是使用tuple进行存放的.
    tuple操作

    (一)我们来创建一个Tuple

    创建一个Tuple
    通常来说,Tuple是放在parentheses 即, 圆括号() 内部.

    >>> tub = (1,2,3)
    >>> type(tub)
    <class 'tuple'>
    

    不过, 最近很流行的是 without parentheses. 即, 不加括号的方式. show:

    >>> tub = 1,2,3
    >>> type(tub)
    <class 'tuple'>
    

    这个名叫, tuple packing. 个人翻译为元组包.
    不过在, 使用tuple的时候,需要注意,只有一个元素的tuple的创建(md,一个元素你还创建tuple干嘛,浪费内存?)一个元素的tuple创建, 需要在末尾+, 进行相关标识

    >>> tub = 1,
    // 或者
    >>> tub = (1,)
    >>> type(tub)
    <class 'tuple'>
    

    如果,你想访问tuple的话, 和访问list 是一个道理

    >>> tub = (1,2,3,4,5,6,7)
    >>> tub[0]
    1
    //当然,你也可以取负值
    >>> tub[-1]
    7
    

    所以,这里我们也可以使用for...in...进行 遍历.

    (二):不变的Tuple

    一般创建了一个tuple, 之后你就用于无法改变他的值了, 也就是你不能删除,或者添加。不过,如果你的tuple里面放一些可变的内容的话, 比如,list的话,那情况就不一样了。基于这一点,我们理解tuple 应该说为 shallow不变形。即,不能改变值类型,但可以改变引用类型.

    >>> tup
    (1, 2, 3, [2, 3], 5)
    >>> tup[3]
    [2, 3]
    >>> tup[3].append(1)
    >>> tup
    (1, 2, 3, [2, 3, 1], 5)
    //删除tup, 会报错
    >>> del tup[0]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object doesn't support item deletion
    

    虽然,我们不能对tuple执行CD操作, 但相关的查询方法我们还是可以使用的

    (三):Tuple 查询

    在tuple里面有两个查询方法, index和count, 另外你使用in也是没有问题的

    >>> my_tuple = ('a','p','p','l','e',)
    >>> my_tuple.count('p')
    2
    >>> my_tuple.index('l')
    3
    >>> 'a' in my_tuple
    True
    

    同样, 关于list的一些built-in methond. 在tuple身上也是使用的, 有 max,min,sum,all,any,len,sorted. 这几个, 都是木有问题的

    总结一下: tuple方法什么时候我们用Tuple?
    tuple就是用来放不变的数据,并且tuple在内部中有遍历加速(因为不变).


    如有问题可联系QQ:2499578824
  • 相关阅读:
    波形相加
    2003-2011电赛题目
    个人课程总结
    程序员的修炼之道:从小工到专家阅读笔记03
    程序员修炼之道:从小工到专家阅读笔记02
    计算最长英语单词链
    学习进度十五
    程序员修炼之道:从小工到专家阅读笔记01
    学习进度十四
    用户体验评价
  • 原文地址:https://www.cnblogs.com/chunbo/p/11189520.html
Copyright © 2011-2022 走看看