• python学习笔记(06)---(内置容器-元组)


    第七章  内置容器(二)

    3.元组

    (1)元组(tuple)将一组不可变的数据序列组合起来,形成一个特殊的内置容器

    (2)元组不允许的操作:

    <1> 修改、新增元素

    <2> 删除元素(允许删除整个元组)

    <3> 所有会对整个元组内部元素发生变化的方法都无法使用(append,remove,pop等)

    (3)元组的操作

    <1> 创建tuplename=(element1,element2,……elementn)。元素个数无限制,类型也可不相同

    1. a = (1, 2, 3, 4, 5)
    2. b = (1,) # 一个元素的元组,逗号不能省略
    3. c = (1) # 不是元组,是给c赋值1
    4. d = () # 空元组
    5. e = tuple(range(0, 20,2)) # 使用tuple()函数创建元组
    6. s1=('china','hello','world')
    7. s2=(23,'python',[1,2,3,4,5])
    8. s3='python','hello','dashabi' # 圆括号可以省略

    <2> 删除元组:del tuplename(不支持单个元素的修改)

    1. t1=(1,2,3,4,5)
    2. t2=('abc','xyz')
    3. # t1[0]=100 # 报错
    4. t1=(6,7,8,9,0) # 支持整体处理
    5. t3=t1+t2
    6. print(t3)
    7. del t1
    8. del t2
    9. # PS:元组为不可变序列,不支持单个元素的删除,可以整体赋值覆盖
    10. # (6, 7, 8, 9, 0, 'abc', 'xyz')
    11. t1=('a','b','c',['A','B','C'])
    12. t1[3][0]='x'
    13. t1[3][1]='y'
    14. t1[3][2]='z'
    15. print(t1)
    16. # PS:元组只可保证一级子元素不可变,对内嵌元素不保证不可变
    17. # ('a', 'b', 'c', ['x', 'y', 'z'])

    <3> 元组连接时必须维持元组性质(结构和内容),不能连接字符串或列表

    1. t1=(1,2,3)
    2. l1=[1,2,3]
    3. # t2=l1+t1 # 报错
    4. # t2=t1+'hello' # 报错

    <4> 元组连接的对象只有一个元素时,必须加逗号

    1. t1=(1,2,3)
    2. t2=t1+(4,)
    3. print(t2)
    4. # (1, 2, 3, 4)

    <5> 元组的读取:定义时使用(),若要读取访问元组内容, 依然和列表一样使用 [ ] 配合索引实现

    1. n1=(1,2,3,4,5)
    2. s1='apple','orange'
    3. print(n1[1],s1[1]) # 此时中括号是访问内部元素
    4. # 2 orange

    <6> 元组切片:与列表操作方式相同

    1. import random as a
    2. # t1=a.sample(range(0,10),10) # 默认返回列表
    3. # [5, 4, 7, 8, 2, 1, 9, 3, 0, 6]
    4. t1 = tuple(a.sample(range(0, 10), 10))
    5. print(t1) # (6, 7, 8, 2, 0, 3, 1, 5, 4, 9)
    6. print(t1[1:3]) # (7, 8)
    7. print(t1[:4]) # (6, 7, 8, 2)
    8. print(t1[5:]) # (3, 1, 5, 4, 9)
    9. print(t1[-2:]) # (4, 9)
    10. print(t1[-3:3:-1]) # (5, 1, 3, 0)
    11. print(t1[0:5:3]) # (6, 2)

    <7> 元组与列表的数据互换

    • list():转为列表
    • tuple():转为元组
    1. t1 = (123, 'hello', '999', 34, 5)
    2. l1 = list(t1)
    3. l1.append('china')
    4. print(l1)
    5. t1 = tuple(l1)
    6. print(t1)
    7. # [123, 'hello', '999', 34, 5, 'china']
    8. # (123, 'hello', '999', 34, 5, 'china')

    (4)元组与列表的区别

    <1> 元组与列表都属于序列,都可以按照特定顺序来存储一组数据,类型个数不受限制

    <2> 区别:

    • 列表是可变序列,元素可以随时修改(增删)。元组为不可变序列,元素内容不可修改、删除,除非整体替换
    • 元组不支持append(),extend(),remove(),insert()等方法
    • 元组仅能通过切片进行访问
    • 元组比列表结构简单,占用资源少,程序运行速度快
    • 元组比列表安全
  • 相关阅读:
    go 并发编程之-工作池
    初识AOS --------AOS学习笔记系列
    CVE-2022-22947 Spring Cloud Gateway SPEL RCE复现
    昇腾CANN 7.0 黑科技:大模型训练性能优化之道
    Linux从入门到精通(九)——Linux编程
    JS 严格模式和正常模式详解
    下一代智能合约开发语言(一)
    Mysql 45讲学习笔记(十)force index
    聊天机器人(Ajax实现聊天机器人接口的调用)
    C++ 中的 typeid 运算符和示例
  • 原文地址:https://blog.csdn.net/weixin_62443409/article/details/127837569