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来说,如果掌握好了,功能更加强大。

  • 相关阅读:
    express 的安全中间件 helmet 简介
    一个设置过期时间的方案
    vscode 中的 vue 格式化
    linux 中部署不同版本 node.js 并同时使用的方案
    webpack 多页面模式配置
    1.assert
    我是一个线程(转)
    Android FragmentTransactionExtended:使Fragment以多种样式动画切换
    Android ORM应用开发框架KJFrameForAndroid使用详解
    Android Studio插件推荐(PreIOC,GsonFormat)
  • 原文地址:https://www.cnblogs.com/duanming/p/11830300.html
Copyright © 2011-2022 走看看