• 写给小白的Python之008:数据类型之元组


    导读:

    1.元组

    元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号里,元素之间用逗号隔开。元组中的元素类型也可以不相同:

    >>> a = (1991, 2014, 'physics', 'math')
    >>> print(a, type(a), len(a))
    (1991, 2014, 'physics', 'math') <class 'tuple'> 4

    创建空元组:

    info_tuple = ()

    元组中只包含一个元素时,需要在元素后面添加逗号:

    info_tuple = (50, )

    与字符串类似,元组可以被索引且下标索引从0开始,也可以进行截取/切片。其实,可以把字符串看作一种特殊的元组。

    >>> tup = (1, 2, 3, 4, 5, 6)
    >>> print(tup[0], tup[1:5])
    1 (2, 3, 4, 5)
    
    >>> tup[0] = 11 # 修改元组元素的操作是非法的

    虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

    >>>a=(1,2,3,[1,2,['a','b','c']])
    >>>a[3][2][1]
    'b'
    
    >>>a[3][2]='4'
    >>>print(a)
    (1,2,3,[1,2,'4'])
    
    >>>a[2]='3'
    报错
    
    >>>t = 1, 2, 3
    >>>t
    (1, 2, 3)
    
    >>>t2 = ('a',) + t[1:]
    >>>t2
    ('a', 2, 3)
    
    >>>(1,2)  is (1,2)
    False

    元组作为返回值:

    >>> def swap(x, y):
    x, y = y, x
    
    >>> a = 1
    >>> b = 2
    >>> swap(a, b)
    >>> print a, b
    1 2

    并没有交换, 因为x和a是同一个值的别名, 在函数swap中改变x的值后, x和a就彻底没有任何关系了。 所以x的改变不能影响变量a。

     在Python中如果变量具有相同的值, 就可以认为这些变量是同一个值的别名。 也就是这些变量指向同一个值。 这样做的好处也许是节省了内存空间。 但是如果某一个变量改变了它自己的值, 那么解释器就开辟出新内存空间存储这个变量的值。 这个变量就指向新的值。

    元组的内置函数count, index

    index和count与字符串和列表中的用法相同。

    >>> a = ('a', 'b', 'c', 'a', 'b')
    >>> a.index('a', 1, 3) # 注意是左闭右开区间
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: tuple.index(x): x not in tuple
    
    >>> a.index('a', 1, 4)
    3
    
    >>> a.count('b')
    2
    
    >>> a.count('d')
    0

    另外,元组也支持用+操作符:

    >>> tup1, tup2 = (1, 2, 3), (4, 5, 6)
    >>> print(tup1+tup2)
    (1, 2, 3, 4, 5, 6)

    元组遍历

    # for 循环内部使用的变量 in 元组

    for item in info:

        循环内部针对元组元素进行操作

        print(item)

    在 Python 中,可以使用 for 循环遍历所有非数字型类型的变量:列表、元组、字典 以及 字符串。

    应用场景

    尽管可以使用for in遍历元组,但是在开发中,除非 能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多。更多的应用场景是:

    1.函数的 参数  返回值,一个函数可以接收 任意多个参数,或者 一次返回多个数据

    2.格式字符串,格式化字符串后面的 () 本质上就是一个元组;

    3.让列表不可以被修改,以保护数据安全。

    info = ("zhangsan", 18)

    print("%s 的年龄是 %d" % info)

    要点:

    1、与字符串一样,元组的元素不能修改。

    2、元组也可以被索引和切片,方法一样。

    3、注意构造包含0或1个元素的元组的特殊语法规则。

    4、元组也可以使用+操作符进行拼接。

    5、通常,元组中保存的数据类型是不同的。

    6、string、list和tuple都属于sequence(序列)。

  • 相关阅读:
    openwrt
    第37章 socket编程 之练习:实现简单的web服务器
    Unix domain socket IPC
    String题目解析1
    this()与super()
    if当中是赋值怎么办
    编译时检查错误有哪些
    int与Integer
    log4j日志级别怎么搞
    数据库标准八步每一步中的作用
  • 原文地址:https://www.cnblogs.com/salmond/p/8722429.html
Copyright © 2020-2023  润新知