Python基础数据类型tuple元组的概念与用法

作者:小菠萝测试笔记 时间:2022-11-25 03:59:16 

目录
  • 元组简单介绍

  • 声明元组

  • 元组与列表的区别

  • 特殊的元组

  • 元组的简写

  • 元组常见运算操作

    • 索引 [ ] 取值

    • 切片 [ : : ] 取值

    • 运算符 +

    • 运算符 *

    • 关键字 in

  • 常见函数

    • max(元组) 函数

    • min(元组) 函数

  • 元组常见方法

    • index(item)

    • count(value)

  • 元组总结

    元组简单介绍

    元组是一个和列表和相似的数据类型,也是一个有序序列

    两者拥有着基本相同的特性,但是也有很多不同的地方 

    声明元组


    var = (1, 2, 3)
    var = ("1", "2", "3")
    var = (True, False)
    var = (1.1, 1.11, 1.111)
    var = ((1,), (2, 3), (4, 5))
    var = ([1, 2], {"name": "polo"})

    元组与列表的区别

    元组与列表很相似,都是有序的只读序列,两者有相同的方法和操作运算,区别在于:

    列表创建后,可以进行修改

    元组创建后,不能进行修改


    lis = [1, 2, 3]
    lis[0] = 111
    print(lis)

    tupl = (1, 2, 3)
    tupl[0] = 2

    # 输出结果
    Traceback (most recent call last):
     File "/Users/polo/Documents/pylearn/第一章:python 基本类型/6_tuple元组.py", line 21, in <module>
       tupl[0] = 2
    TypeError: 'tuple' object does not support item assignment

    究极原因在于

    列表是可变对象,而元组是不可变对象,具体详解可以参考

    //www.jb51.net/article/218564.htm

    特殊的元组

    如果一个元组没有包含任何元素,使用 () 表示一个空元组


    # 空
    tup = ()
    print(tup, type(tup))

    # 输出结果
    () <class 'tuple'>

    如果一个元组只包含一个元素,要怎么表示?


    # 只包含一个元素
    tup = (1)
    print(tup, type(tup))

    # 输出结果
    1 <class 'int'>

    哎!竟然是 1,好像是哦,( ) 就是数学运算常见的括号呀,那到底要怎么表示呢

    正确表示元组只包含一个元素


    # 正确
    tup = (1,)
    print(tup, type(tup))

    # 输出结果
    (1,) <class 'tuple'>

    需要在元素后加一个逗号,使用 (item, ) 表示该元组

    总结

    (123, ) 表示的是一个元组,元组中包含一个整数 123

    (123) 表示的是一个带括号的表达式,整数 123 嵌入括号中 

    元组的简写

    当元组在 = 右边的时候,可以省略括号


    # 等价写法
    a = 1, 2
    print(a, type(a))
    a = (3, 4)
    print(a, type(a))

    a = 1,
    print(a, type(a))
    a = (3,)
    print(a, type(a))

    # 输出结果
    (1, 2) <class 'tuple'>
    (3, 4) <class 'tuple'>
    (1,) <class 'tuple'>
    (3,) <class 'tuple'>

    元组常见运算操作

    索引 [ ] 取值


    # 索引
    tup = [1, 2, 3, 4, 5]
    print(tup[0])
    print(tup[-1])
    print(tup[2])

    # 输出结果
    1
    5
    3

    切片 [ : : ] 取值

    和列表一样,元组也可以切片

    使用语法:元组[start : end : step],获取元组中在 [start, end) 范围的子元组

    注意范围 [start, end) 包含 start,不包含 end

    step 是步长,设为 n,则每隔 n 个元素获取一次


    # 切片
    tup = [1, 2, 3, 4, 5, 6, 7, 8]
    print(tup[:])  # 取全部元素
    print(tup[0:])  # 取全部元素
    print(tup[2:5])  # 取第 3 个元素到第 5 个元素
    print(tup[::-1])  # 倒序取所有元素
    print(tup[-3:-1])  # 取倒数第 3 个元素到倒数第 2 个元素

    # 输出结果
    [1, 2, 3, 4, 5, 6, 7, 8]
    [1, 2, 3, 4, 5, 6, 7, 8]
    [3, 4, 5]
    [8, 7, 6, 5, 4, 3, 2, 1]
    [6, 7]

    运算符 +

    使用运算符 + 连接多个元组


    # +
    tup1 = (1,)
    tup2 = (2, 3)
    print(tup1 + tup2)

    # 输出结果
    (1, 2, 3)

    运算符 *

    使用运算符 * 将元组的元素重复


    # *
    tup = (1, 2)
    print(tup * 2)

    # 输出结果
    (1, 2, 1, 2)

    关键字 in

    通过关键字 in 检查列表中是否包含指定元素,返回 bool 值

    not in 则是取反


    # in
    tup = (1, 2, 3)
    print(1 in tup)
    print(22 not in tup)

    # 输出结果
    True
    True

    常见函数

    len(元组) 函数


    # len
    tup = (1, 2, 3)
    print(len(tup))

    # 输出结果
    3

    max(元组) 函数


    # max
    tup = (1, 2, 3)
    print(max(tup))

    # 输出结果
    3

    min(元组) 函数


    # min
    tup = (1, 2, 3)
    print(min(tup))

    # 输出结果
    1

    元组常见方法

    元组与列表很相似,两者都表示一个有序的序列,它们的区别在于:

    • 列表创建后,可以进行修改

    • 元组创建后,不能进行修改

    这点在可变对象、不可变对象文章都写了

    index(item)

    在元组中查找指定元素 item

    如果找到元素 item,则返回元素 item 的索引

    如果找不到,则抛出异常


    # index
    tup = (1, 2, 3)
    print(tup.index(1))
    print(tup.index(11))

    # 输出结果
    0
    Traceback (most recent call last):
     File "/Users/Documents/pylearn/第一章:python 基本类型/6_tuple元组.py", line 88, in <module>
       print(tup.index(11))
    ValueError: tuple.index(x): x not in tuple

    count(value)

    返回元素 value 在元组中出现的次数


    # count
    tup = (1, 2, 1)
    print(tup.count(1))
    print(tup.count(11))

    # 输出结果
    2
    0

    元组总结

    因为元组是不可变对象,所以元组一般适合用来存储不变的数据

    来源:https://www.cnblogs.com/poloyy/p/15068366.html

    标签:python,tuple,元组
    0
    投稿

    猜你喜欢

  • python的pip安装以及使用教程

    2022-12-05 11:04:37
  • python 包之 threading 多线程

    2021-06-03 19:54:41
  • vue+element-ui+sortable.js实现表格拖拽功能

    2024-04-09 11:00:11
  • pytorch加载自己的数据集源码分享

    2023-04-16 08:46:09
  • 浅析pandas随机排列与随机抽样

    2022-03-29 21:19:00
  • python每5分钟从kafka中提取数据的例子

    2022-05-15 16:35:52
  • pytorch + visdom CNN处理自建图片数据集的方法

    2023-05-03 06:33:16
  • python实现神经网络感知器算法

    2021-03-06 11:23:39
  • 余弦相似性计算及python代码实现过程解析

    2021-10-15 14:44:56
  • 超简单的scrapy实现ip动态代理与更换ip的方法实现

    2022-12-21 19:58:05
  • mysql修改记录时update操作 字段=字段+字符串

    2024-01-25 08:29:53
  • python环境下安装opencv库的方法

    2022-03-22 10:11:24
  • Laravel使用Queue队列的技巧汇总

    2024-06-05 09:46:03
  • python利用socket实现udp文件传输功能

    2023-07-07 14:15:33
  • asp如何显示最后十名来访者信息?

    2010-06-09 18:45:00
  • 浅谈如何使用webpack构建多页面应用

    2024-04-16 09:27:13
  • Python 中将二进制转换为整数的多种方法

    2023-01-11 17:30:53
  • Centos 6.5系统下编译安装PHP 7.0.13的方法

    2023-06-07 13:04:26
  • python制作机器人的实现方法

    2022-11-09 21:09:05
  • 如何在Windows中安装多个python解释器

    2023-08-28 02:55:43
  • asp之家 网络编程 m.aspxhome.com