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 类型

  • 相关阅读:
    20200209 ZooKeeper 3. Zookeeper内部原理
    20200209 ZooKeeper 2. Zookeeper本地模式安装
    20200209 Zookeeper 1. Zookeeper入门
    20200206 尚硅谷Docker【归档】
    20200206 Docker 8. 本地镜像发布到阿里云
    20200206 Docker 7. Docker常用安装
    20200206 Docker 6. DockerFile解析
    20200206 Docker 5. Docker容器数据卷
    20200206 Docker 4. Docker 镜像
    Combining STDP and Reward-Modulated STDP in Deep Convolutional Spiking Neural Networks for Digit Recognition
  • 原文地址:https://www.cnblogs.com/songhaixing/p/14017975.html
Copyright © 2011-2022 走看看