zoukankan      html  css  js  c++  java
  • python——namedtuple

    namedtuple()概念理解分享

    我们都知道元组tuple的概念,tuple是一个定义之后就不能够更改的可迭代对象,namedtuple作为tuple的兄弟具有同样的属性,一旦定义就不可以更改。但是namedtuple相对于tuple具有更灵活的使用方法。所以namedtuple功能更强大。

    首先举个例子看看这个函数怎么使用的

    from collections import namedtuple   # 导入模块
    Student = namedtuple('duanming','age','class')   
    # 括号内的duanming是等下要输出在括号外的
    # Student是一个类,等下定义的时候要使用
    a = Student(23,'5班')
    print(a)
    #output: duanming(age = 23,class = 5班) 
    
    #上面定义括号中的duanming跑到括号外了,当了标识符
    # 我们在把a的参数‘age'和'class'传给Student的时候不能少传或者多传,不然会报错
    

    按照上面给的例子,可以创建一个自己属性的namedtuple来当作练习

    我们知道在tuple中如果要访问哪个值只能通过索引或者遍历来访问,在namedtuple中不仅仅可以通过遍历和索引来访问,还能够通过域来访问,例如下面:

    from collections import namedtuple   # 导入模块
    Student = namedtuple('duanming','age','class')   
    # 括号内的duanming是等下要输出在括号外的
    # Student是一个类,等下定义的时候要使用
    a = Student(23,'5班')
    print(a)
    #output: duanming(age = 23,class = 5班) 
    #为了得到年龄,我们可以这样进行操作:
    age = duanming.age
    print(age)
    #output:23
    

    这里可以总结一下,namedtuple实际上也是生成了一个元组,上面这个元组的名字是duanming,它有两个域,一个是’age’,另一个是’class’,我们定义的方式不是像tuple那样直接给出来了,我们是先构造出这个通用元组的名称和域名,然后再对其域进行赋值,所以这个通用元组可以一直被重复使用,定义大量格式相同而内容不同的元组,所以namedtuple相对于tuple来说,如果掌握好了,功能更加强大。

  • 相关阅读:
    Bonding
    负载均衡
    XML
    wireshark
    IE
    轨迹系列7——Socket总结及实现基于TCP或UDP的809协议方法
    轨迹系列6——车载GPS对接方案汇总小结(809、自定义协议、前置库、WS)
    基于R树索引的点面关系判断以及效率优化统计
    WebGIS中以version方式实现代码更新后前端自动读取更新代码的方法
    轨迹系列5——验证轨迹GPS坐标转换为本地坐标的四/七参数是否准确的一种方案
  • 原文地址:https://www.cnblogs.com/duanming/p/11830300.html
Copyright © 2011-2022 走看看