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

    元组类型内置方法

    一. 元组(tuple)

    元组是不可变的列表,即元组的值不可更改,因此元组一般只用于只存不取的需求。也因此元组可以被列表取代掉,所以元组相比较列表使用的很少。元组相比较列表的优点为:列表的值修改后,列表的结构将会发生改变,而元组只需要存储,因此列表在某种程度上而言需要占用更多的内存。但是目前工业上内存已经不是问题了,所以工业上元组一般不会使用。

    1.1 用途:多个装备、多个爱好、多门课程等

    1.2 定义:在()内可以有多个任意类型的值,逗号分隔元素

    my_teacher = ('nick','jason', 'tank', 'sean')
    print(f"my_teacher: {my_teacher}")
    
    # my_teacher: ('nick', 'jason', 'tank', 'sean')
    
    name_str = ('lwx')  # ()只是普通包含的意思
    name_tuple1 = ('lwx','hanye')
    name_tuple = ('lwx',) # 只有一个元素,最后要加上逗号
    
    print(f"type(name_str): {type(name_str)}")
    print(f"type(name_tuple): {type(name_tuple1)}")
    print(f"type(name_tuple): {type(name_tuple)}")
    

    二.元组的内置方法

    2.1 优先掌握

    2.1.1 按索引取值

    name = ('lwx','hanye','forever')
    print(name[0])
    print(name[0:2])
    
    # lwx
    # ('lwx', 'hanye')
    

    2.1.2 切片(顾头不顾尾,步长)

    name = ('lwx','hanye','forever','happiness','enjoying')
    print(name[0:4:2])
    
    # ('lwx', 'forever')
    

    2.1.3 长度(len)

    name = ('lwx','hanye','forever','happiness','enjoying')
    print(len(name))
    
    # 5						
    

    2.1.4 成员运算(in /not in)

    name = ('lwx','hanye','forever','happiness','enjoying')
    print('lwx' in name)
    
    # True
    

    2.1.5 循环

    name = ('lwx','hanye','forever','happiness','enjoying')
    for name in name :
        print(name)
    
    # lwx
    # hanye
    # forever
    # happiness
    # enjoying
    

    2.1.6 计数(count)

    name = ('lwx','hanye','forever','hanye','happiness','lwx','enjoying')
    print(name.count('lwx'))
    print(name.count('hanye'))
    
    # 2
    # 2
    

    2.1.7 索引(index())

    name = ('lwx','hanye','forever','hanye','happiness','lwx','enjoying')
    print(name.index('happiness'))
    print(name.index('hanye'))
    
    # 4
    # 1
    

    2.2 存一个值or多个值

    多个值

    2.3 有序or无序

    有序,可以按照索引取值

    2.4 可变还是不可变

    元组一旦义就不可以进行修改,所以是不可遍数数据类型

    三. 元组和列表的区别

    name = ['lwx','hanye','forever','hanye','happiness','lwx','enjoying']
    print(id(name[6]))
    name[6] = 'happy'
    print(id(name[6]))
    
    # 90515040
    # 90441856
    

    列表可变的原因是:索引对应的值的内存地址是可以改变的

    元组不可变得原因是:索引所对应的值的内存地址是不可以改变的,或者反过来说,只要索引对应值的内存地址没有改变,那么元组是始终没有改变的。

    name = (['lwx','hanyhe'],'forever','happiness')
    print(f'id(name[0]:{id(name[0])}')
    print(f'id(name[0]:{id(name[1])}')
    print(f'id(name[0]:{id(name[2])}')
    
    print('****************************************************')
    
    name[0][0]='luowenxiang'
    print(name)
    print(f'id(name[0]:{id(name[0])}')
    
    # id(name[0]:56571384
    # id(name[0]:85920000
    # id(name[0]:56911296
    # ****************************************************
    # (['luowenxiang', 'hanyhe'], 'forever', 'happiness')
    # id(name[0]:56571384
    
  • 相关阅读:
    RabbitMQ安装
    基于Linux的校园网破解思路和方法
    网络-0001-常见传输介质
    友情链接
    linux简史
    计算机的发展简史
    ArrayList&LinkedList&Vector区别
    Adobe Flash Player PPAPI 32.0.0.330
    ntoskrnl.exe导致蓝屏解决方法
    Git常用命令
  • 原文地址:https://www.cnblogs.com/LWX-YEER/p/11379629.html
Copyright © 2011-2022 走看看