Python的Collections模块提供了不少好用的数据容器类型,其中一个精品当属namedtuple。

namedtuple能够用来创建类似于元祖的数据类型,除了能够用索引来访问数据,能够迭代,更能够方便的通过属性名来访问数据。

在python中,传统的tuple类似于数组,只能通过下标来访问各个元素,我们还需要注释每个下标代表什么数据。通过使用namedtuple,每个元素有了自己的名字,类似于C语言中的struct,这样数据的意义就可以一目了然了。当然,声明namedtuple是非常简单方便的。

代码示例如下:

from collections import namedtuple

Friend=namedtuple("Friend",['name','age','email'])

f1=Friend('xiaowang',33,'xiaowang@163.com')

print(f1)

print(f1.age)

print(f1.email)

f2=Friend(name='xiaozhang',email='xiaozhang@sina.com',age=30)

print(f2)

name,age,email=f2

print(name,age,email)

类似于tuple,它的属性也是不可变的:

>>> big_yellow.age += 1

Traceback (most recent call last):

File "", line 1, in

AttributeError: can't set attribute

能够方便的转换成OrderedDict:

>>> big_yellow._asdict()

OrderedDict([('name', 'big_yellow'), ('age', 3), ('type', 'dog')])

方法返回多个值得时候,其实更好的是返回namedtuple的结果,这样程序的逻辑会更加的清晰和好维护:

>>> from collections import namedtuple

>>> def get_name():

... name = namedtuple("name", ["first", "middle", "last"])

... return name("John", "You know nothing", "Snow")

...

>>> name = get_name()

>>> print name.first, name.middle, name.last

John You know nothing Snow

相比tuple,dictionary,namedtuple略微有点综合体的意味:直观、使用方便,墙裂建议大家在合适的时候多用用namedtuple。

python编程中条件句_简单讲解Python编程中namedtuple类的用法相关推荐

  1. python中输入字符串_简单讲解Python中的字符串与字符串的输入输出

    简单讲解Python中的字符串与字符串的输入输出 发布于 2016-03-26 14:35:42 | 110 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向 ...

  2. python函数设置默认参数_深入讲解Python函数中参数的使用及默认参数的陷阱

    这篇文章主要介绍了Python函数中参数的使用及默认参数的陷阱,文中将函数的参数分为必选参数.默认参数.可变参数和关键字参数来讲,要的朋友可以参考下 C++里函数可以设置缺省参数,Java不可以,只能 ...

  3. python函数分几种_简单了解Python中的几种函数

    python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda lambda函数的使用方法:在lam ...

  4. python协同过滤调用包_简单的python协同过滤程序实例代码

    本文研究的主要是python协同过滤程序的相关内容,具体介绍如下. 关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周围的朋友,看看 ...

  5. python编写接口自动化脚本_简单的python http接口自动化脚本

    摘抄:今天给大家分享一个简单的python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值 ...

  6. python字符串前面加上序号_简单了解python字符串前面加r,u的含义

    这篇文章主要介绍了简单了解python字符串前面加r,u的含义,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 u/U:表示unicode字符串 不是 ...

  7. python人脸识别系统下载_简单的Python人脸识别系统

    案例一 导入图片 思路: 1.导入库 2.加载图片 3.创建窗口 4.显示图片 5.暂停窗口 6.关闭窗口 # 1.导入库 import cv2 # 2.加载图片 img = cv2.imread(' ...

  8. python自己做个定时器_简单实现python定时器

    下面介绍以threading模块来实现定时器的方法.(课课家) 使用前先做一个简单试验: import threading def sayhello(): print "hello worl ...

  9. python中输入的字怎么表示_简单讲解Python中的字符串与字符串的输入输出

    字符串字符串用''或者""括起来,如果字符串内部有'或者",需要使用\进行转义 >>> print 'I\'m ok.' I'm ok. 转义字符\可以 ...

最新文章

  1. DELL optiplex 解决改回 AHCI蓝屏问题
  2. zoj-What day is that day?
  3. 45 | 答疑(五):网络收发过程中,缓冲区位置在哪里?
  4. (Spring程序开发)简介程序开发步骤配置文件相关API
  5. S3C2440中断跳转分析
  6. 49自动化测试中最常见的硒异常
  7. 基于git的工作流程
  8. 实现pv uv统计_聊聊前端监控(二)--行为监控的技术实现
  9. java 嵌套调用_Java嵌套类的使用
  10. JENKINS+maven+ssh+shell 完成自动化部署工具的开发
  11. php7.4报错:Trying to access array offset on value of type null
  12. linux下的web安全机制,linux http服务器web网页的不同安全机制
  13. 使用elastic job 不分片任务加载失败的可能原因
  14. 锋利Jquery 第一天
  15. 小说取名软件(附带截图)分享与介绍
  16. 如何在微信公众号优雅地添加代码
  17. fMRI数据分析处理原理及方法
  18. 物来顺应,未来不迎,当时不杂,既过不恋
  19. RabbitMQ之业务场景:动态创建,删除队列工具类(一)
  20. Redis Cluster内存爆满

热门文章

  1. python网页开发好用吗_推荐用于Web开发的最好 Python 框架
  2. 谱聚类(spectral clustering)原理总结
  3. 十大经典排序算法(动图演示,收藏好文)
  4. 机器学习 —— 浅谈贝叶斯和MCMC
  5. mysql 第二天数据_MySQL入门第二天------数据库操作
  6. 设置python路径
  7. 好代码实践:基于Redis的轻量级分布式均衡消费队列
  8. 基于X-Engine引擎的实时历史数据库解决方案揭秘
  9. 【MySQL】 如何在“海啸”下保命
  10. 云解析DNS能为你做什么?