zoukankan      html  css  js  c++  java
  • python-元组

    元组tuple(不可变)

    初始化

    #创建一个空元组
    a=tuple()
    print(a)
    ()
    
    #tuple(iterable)
    print(tuple(range(1,23,4)))
    #输出
    (1, 5, 9, 13, 17, 21)
    
    #*号
    print((1,2)*3)
    #输出
    (1, 2, 1, 2, 1, 2)
    

    元组访问

    #正负索引,越界抛异常
    a=(12,33,3,2,44,4)
    print(a[3])
    a[3]=5
    print(a)
    #输出
    2
    TypeError: 'tuple' object does not support item assignment
    
    

    以上可以说明元组不可变,与字符串一项,要改变一个变量,必须再开辟一块内存空间

    元组查询

    #index(value,[start,[stop]])
    a=(12,33,3,2,44,4)
    print(a.index(4,1,5))
    #输出
    ValueError: tuple.index(x): x not in tuple
            
    a=(12,33,3,2,44,4)
    print(a.index(4,1,6))
    #输出
    5
    

    说明以上的[start,stop]取值也是[,),取不到就会报错

    #count(value)
    a=(12,33,3,2,44,4,2,3,23,4,5,2)
    print(a.count(4))
    #输出
    2
    

    count和index的时间复杂度都是O(n),len()取出长度

    由于元组是只读的,所以增删改都没有

    命名元组namedtuple

    #namedtuple(typename,field_names,verbose=False,rename=False)
    #typename是命名元组,field_names可以是空格或分割的字段,也可以是列表,后两者默认即可
    from collections import namedtuple
    Student = namedtuple('Student','name age')
    tom=Student('tom',20)
    jerry=Student('jeery',18)
    print(tom.name,tom.age)
    #输出
    tom 20
    
    from collections import namedtuple
    P = namedtuple("P",'x y')
    p1=P(10,20)
    print(p1)
    #输出
    P(x=10, y=20)
    

    如果所需要的类不需要那么复杂,可以使用namedtuple当简单类使用

  • 相关阅读:
    Commander Nodejs 命令行接口
    数据库集群 ---续集
    数据库集群
    实时查看linux下的日志
    自动化测试
    python中list和dict
    super与this的用法
    数据类型
    父类调用子类方法
    子类调用父类方法
  • 原文地址:https://www.cnblogs.com/wuyanzu123/p/9439894.html
Copyright © 2011-2022 走看看