zoukankan      html  css  js  c++  java
  • 🍖元组类型内置方法

    一.作用

    1.元组与列表

    • 元组其实就是不可变的列表
    • 列表可读可改, 而元组只读不能改
    • 同等数据类型下, 元组更加节省空间, 并且效率更高于列表
    • 因为元组底层只提供读的机制, 而列表既有读也有改的机制

    2.元组的作用

    • 显而易见, 也是按照位置存放多个值, 索引对应值

    二.定义方式

    • "( )" 内用逗号分隔开多个任意类型的元素
    • 如果元组内只包含一个元素, 那么需要用逗号隔开: (111,)
    • 元组不可变指的是第一层元素的内存地址不能改变
    • 如果第一层里面包含一个子列表, 那么子列表的内存地址不能改变, 但可以改变子列表里面的元素(列表可变类型)
    • "工厂" : tuple
    定义
    l=(11,11.11,"aaa",[222,333])  #背后调用 l=tuple(...)
    
    定义单个值需要加逗号(没加就只是包含的意思)
    x = (18)
    y = (18,)
    print(type(x))  #<class 'int'>
    print(type(y))  #<class 'tuple'>
    
    • 元组不可变解析

    元组的不可变类型解析
    tup = (111,"aaa",[222,333])
    print(id(tup[0]),id(tup[1]),id(tup[2]))
    #140709693587136 2763387504816 2763386278472
    
    tup[0] = 222  #报错
    tup[1] = 333  #报错
    tup[2] = 333  #报错
    
    当改变子列表内元素时
    tup[2][0] = 333
    print(tup[2])  #[333, 333]
    
    修改完成后查看, 元组第一层元素的"id"没有改变
    print(id(tup[0]),id(tup[1]),id(tup[2]))
    #140709693587136 2763387504816 2763386278472
    

    三.常用操作 + 内置方法

    优先掌握的操作(*********)

    1.按照索引取值 (正向取 + 反向取) : 只能取

    tup = (111,222,333,444,555)
    正向取
    print(t[0])   #111
    
    反向取
    print(t[-1])  #555
    

    2.切片 (顾头不顾尾 + 步长)

    tup = (111,222,333,444,555,666)
    顾头不顾尾
    print(t[0:3])   # (111,222,333)
    
    反转
    tup2 = tup[::-1]
    print(tup2)  #(666,555,444,333,222,111)
    

    3、长度 : .len()

    tup = (111,222,333,444,555,666)
    print(len(tup))  # 6
    

    4、成员运算 int和 not in

    • 判断的是否只是在第一层元素中
    tup = (111,"aaa",[222,333])
    print(111 in tup)  #True
    print(222 in tup)  #False
    print([222,333] in tup)  #True
    

    5、循环

    tup = (111,"aaa",[222,333])
    for i in tup:
        print(i)
    # 111
    # aaa
    # [222, 333]
    

    需要掌握的操作(****)

    1.统计个数 : .count()

    • 查看的是一个元素在元组中的个数, 查看的只是第一层
    tup = (111,"aaa",222,222,[222,333])
    print(tup.count(222))  # 2
    

    2.查找索引 : .index()

    • 找到指定字符在列表中的索引, 可以指定范围查找
    • 元组中没有像字符串中 : find、rfind、rindex 的这些方法
    • 只是在第一层查找
    tup = (111,"aaa",222[222,333])
    print(tup.index("aaa",1,3))  # 1
    

    四.总结

    • 可以存多个值

    • 有序, 依赖索引取值

    • 不可变类型--->可 hash 类型

  • 相关阅读:
    51nod贪心算法入门-----完美字符串
    HDU6030----矩阵快速幂
    O(n)求1~n的逆元
    (四)添加签到奖励功能
    (三)开始在OJ上添加签到功能
    (二)OJ的主要文件
    (一)在linux上ubuntu搭建hustOJ系统
    CF 148A Insomnia cure
    lower_bound和upper_bound
    C++ string的常用功能
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14017975.html
Copyright © 2011-2022 走看看