zoukankan      html  css  js  c++  java
  • Python数据结构之二——tuple(元组)

      Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ

      列表和元组是Python中最常见的内建序列。元组与列表一样,但是tuple一旦创建就不能修改。创建元组的语法非常简单,示例如下:

      >>> 1,2,3

      (1,2,3)

      如果您用逗号分隔了一些值,那么您就自动创建了tuple。一旦创建,tuple内容就是固定的。

      tuple格式如下:

      t = (1,),小括号。

      1.元组索引

      tuple创建后,不能通过append()、pop()、insert()、remove()等方法改变tuple的内容。然而tuple是可以被索引访问的,即获取tuple元素的方法与list类似,但元素值不可被修改。  

      >>> t = (1,2,3,4,5,6)

      >>> t[0]

      1

      如代码所示,tuple可以正常地通过索引(t[0],t[-1]......)访问元素值。

      2.元组陷阱

      创建元组时,需要特别注意元组中只有一个值的情况。Python的数据类型包括tuple、int等等。因此,当tuple中包含一个元素的时候,不能遗漏逗号。

      >>> t = (56)

      >>> t

      56  

      >>> t = (56,)

      >>> t

      (56,)

      注:定义一个空的tuple,可以写成()。

      3.元组方法

      由于元组是不可变的,所以元组支持的方法很少,与list无法相提并论。tuple仅仅支持index()、count()等极少数的方法。话不多说,直接上图。

      

                       图1 tuple方法介绍

      4.tuple()

      与list()一样,功能:以一个序列作为参数并把它转换为tuple。  

      >>> tuple([1,2,3])

      (1,2,3)

      >>> tuple('abc')

      ('a','b','c')

      >>> tuple((1,2,3))

      (1,2,3)

      5.不可替代性

      tuple是不可变序列,它有存在的必要吗?它的意义在哪?......面对这一系列的疑问,我也查过很多的资料,包括Python基础教程、廖晓峰教程等等。tuple不可替代的原因:1.安全性;2.键(key)。

      因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。(来自廖老师的教程)

      tuple可以在映射(和集合的成员)中当作键(key)使用——而列表不行。

      tuple作为很多内建函数和方法的返回值存在,也就是说您必须对元组进行处理。

      >>>def f():

          return 2,3

      >>>f()

      (2,3)

      返回值为元组类型

      tuple总结

      1.tuple是不可变的序列。

  • 相关阅读:
    PAT (Advanced Level) Practice 1055 The World's Richest (25 分) (结构体排序)
    PAT (Advanced Level) Practice 1036 Boys vs Girls (25 分)
    PAT (Advanced Level) Practice 1028 List Sorting (25 分) (自定义排序)
    PAT (Advanced Level) Practice 1035 Password (20 分)
    PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) (进制转换,回文数)
    PAT (Advanced Level) Practice 1120 Friend Numbers (20 分) (set)
    从零开始吧
    Python GUI编程(TKinter)(简易计算器)
    PAT 基础编程题目集 6-7 统计某类完全平方数 (20 分)
    PAT (Advanced Level) Practice 1152 Google Recruitment (20 分)
  • 原文地址:https://www.cnblogs.com/SmallWZQ/p/8442604.html
Copyright © 2011-2022 走看看