collections.namedtuple() 命名元组的一个主要用途是将你的代码从下标操作中解脱出来
举例使用
# 使用
from collections import namedtuple
Subscriber = namedtuple('Subscriber', ['addr', 'joined']) # 需要传递一个类型名和你需要的字段给它,然后它就会返回一个类
sub = Subscriber('jonesy@example.com', '2012-10-19') # 你可以初始化这个类,为你定义的字段传递值
print(sub.addr,sub.joined) # jonesy@example.com 2012-10-19
下表操作与命名元祖相比:
下标操作通常会让代码表意不清晰,并且非常依赖记录的结构,即很依赖索引数值,添加了新的列的时候你的代码可能就会出错了,而且使得你的代码难以阅读
下面是使用命名元组的版本:
Stock = namedtuple('Stock', ['name', 'shares', 'price'])
def compute_cost(records):
total = 0.0
for rec in records:
s = Stock(*rec) # 元祖打散
total += s.shares * s.price # 直接通过名称取值 而不是 total += rec[1] * rec[2]
return total
 

python之命名元组的好处的更多相关文章

  1. Python namedtuple(命名元组)使用实例

    Python namedtuple(命名元组)使用实例 #!/usr/bin/python3 import collections MyTupleClass = collections.namedtu ...

  2. python namedtuple命名元组

    from collections import namedtuple Animal=namedtuple('Animal','name age type') perry=Animal(name='pe ...

  3. python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列

    1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能  Counter 我们从中挑选一些相对常用的方法来举例: 在上面的例子 ...

  4. Python 学习 第十四篇:命名元组

    Python的元组不能为元组内部的数据进行命名,而 collections.namedtuple 可以来构造一个含有字段名称的元组类,命名元组可以通过逗号+字段名来获取元素值: collections ...

  5. python 命名元组(namedtuple)

      我们知道c/c++语言中,有结构体这种数据类型: struct{ string name; int age; char sex; }student; 在对结构体对象进行赋值或者取值时可以使用.运算 ...

  6. Python collections系列之可命名元组

    可命名元组(namedtuple)  根据nametuple可以创建一个包含tuple所有功能以及其他功能的类 1.创建一个坐标类 import collections # 创建类, defaultd ...

  7. Python元组与字符串操作(9)——随机数、元组、命名元组

    随机数 import random #导入random模块 randint(a,b) 返回[a,b]之间的整数 random.randint(0,9) randrange([start],stop,[ ...

  8. python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数

    上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...

  9. Python中比元组更好用的namedtuple

    一.思考 1.什么是元组? 不可变的序列类型 "不能修改的列表" 2.元组支持哪些操作? 元组是序列类型,支持序列类型的所有操作 通过索引取值 one_tuple = (" ...

随机推荐

  1. linux 服务器,登录出现login incorrect

    1.排查是否是登录用户的密码错误 2.查看本机电脑键盘是否有误 3.排查是否是服务器目录全是777权限 注意事项: 原因是您把系统中全部文件的权限改为的777 ,权限混乱,虽然现在可以访问,但是其他文 ...

  2. 51.Lowest Common Ancestor of a Binary Tree(二叉树的最小公共祖先)

    Level:   Medium 题目描述: Given a binary tree, find the lowest common ancestor (LCA) of two given nodes ...

  3. java运算注意事项

    /* 对于byte.short.char.插入三种类型来说,如果右侧固执的数值没有超过范围,那么java编译器就会自动隐含地位我们 补上一个(byte) ,(short),(char) 1.如果没有超 ...

  4. Spring Bean 的生命周期,如何被管理的

    1. 实例化一个Bean,也就是我们通常说的new 2. 按照Spring上下文对实例化的Bean进行配置,也就是IOC注入 3. 如果这个Bean实现了BeanNameAware接口,会调用它实现的 ...

  5. JQuery-跑马灯(文字无缝向上翻动-封装)

    转载自他人:https://blog.csdn.net/z69183787/article/details/12857587   (function($){   $.fn.extend({   &qu ...

  6. 小白jquery横向菜单弹出菜单制作

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. springmvc.xml标配配置

    这里提供配置模板[绝不会多余]: <context:component-scan base-package="com.atguigu"></context:com ...

  8. c++后台开发面试常见知识点总结(四)数据库

    数据库的索引类型 聚集索引和非聚集索引的区别(叶节点存储内容) 唯一性索引和主码索引的区别 索引的优缺点,什么时候使用索引,什么时候不能使用索引(重点) 索引最左前缀问题 数据库中事务的ACID 数据 ...

  9. 【集群】Redis哨兵(Sentinel)模式

    主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用.这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式. 一.哨兵 ...

  10. 【网络】Vmware虚拟机下三种网络模式配置

    VMware虚拟机有三种网络模式,分别是Bridged(桥接模式).NAT(网络地址转换模式).Host-only(主机模式). VMware workstation安装好之后会多出两个网络连接,分别 ...