首页 > 其他分享 >使用collections中的namedtuple来处理数据

使用collections中的namedtuple来处理数据

时间:2024-05-06 15:55:06浏览次数:28  
标签:namedtuple index 处理 tuple collections 使用 dict 字段名

前言

tuple在python中是一种不可变的数据结构,和list这种可变的数据结构比较,两者都可以使用索引来读取数值,但是tuple不可变动,因此其不能修改其中的值。
示例:

tuple适合存储不需要频繁变动的数据,但是在使用index来读取tuple中的item值时,就会存在问题,问题在于如果item太多时,甚至开发一段时间没有写注解,那么使用index读取就会变得很有问题,index可能就会是魔术数字(magic number),造成维护上的困难。

namedtuple是tuple的扩展,因为namedtuple可以通过字段(field)来读取数据,因此namedtuple更适合存储数据。

namedtuple使用方法

声明namedtuple需要给定两个参数,第一个是tuple的名称,第二个是tuple包含的字段名称。字段名称使用字符串格式带入所需要的字段。

以上示例tuple名称是Drink,字段名称是product,ice,sugar三个

直接从list转成namedtuple

直接从dict转成namedtuple

将namedtuple转为dict(此时dict为collection里面的OrderDict)

在已经存在的namedtuple基础上,新增新的namedtuple

标签:namedtuple,index,处理,tuple,collections,使用,dict,字段名
From: https://www.cnblogs.com/bonne-chance/p/18175155

相关文章

  • 语音信号处理中的“窗函数”
    文章代码仓库:https://github.com/LXP-Never/window_fun窗函数贯穿整个语音信号处理,语音信号是一个非平稳的时变信号,但“**短时间内可以认为语音信号是平稳时不变的,一般10~30ms**。对连续的语音分帧做STFT处理,等价于截取一段时间信号,对其进行周期性延拓,从而变成无限长序列,并对......
  • halcon 22.11.1 license 异常处理
    halcon版本: progress(订阅版)和steady(永久版);不同的版本需要不同的license license需要每月一换license下载地址 lovelyyoshino/Halcon_licenses:Halconlicensesactivation(github.com) license安装: 解压后根据progress(订阅版)或steady(永久版)拷贝带......
  • vue-i18n的9以上的版本中@被用作特殊字符处理,直接用会报错
    vue3项目中使用vue-i18n的9以上的版本实现国际化,使用过程中出现报错:国际化使用 "validation.regExp.name":"仅允许输入字母、数字与_.@字符"报如下错误 Messagecompilationerror:Invalidlinkedformat1|仅允许输入字母、数字与_.@字符Messagecompilationerror:Un......
  • Camunda 流程执行错误处理ERROR BOUNDARY EVENT
     ERRORBOUNDARYEVENT:在任务发生异常时候会触发走,在代码中必须显式抛出thrownewBpmnError("error.....");publicvoidexecute(DelegateExecutiondelegateExecution)throwsException{System.out.println("进来了>>>>>>>>>>>>&......
  • dama0103第1章 数据管理第2章 数据处理伦理第3章 数据治理
    第1章数据管理1.数据管理的定义:是为了交付、控制、保护并提升数据和信息资产的价值,在其整个生命周期中制定计划、制度、规程和实践活动,并执行和监督的过程。2.数据管理目标:1)理解并支撑企业机器利益相关方的信息需求得到满足。2)获取、存储、保护数据和确保数据资产的完整性3)确......
  • 事件处理函数中, e.stopPropagation()能放在 onChangeColor()后边执行吗?
    在JavaScript事件处理中,e.stopPropagation()的作用是阻止事件向上冒泡到父元素,也就是说,它防止当前元素的事件继续传播到DOM树上的其他事件监听器。因此,它的位置对于事件流的行为至关重要。将e.stopPropagation()放在onChangeColor()后面执行,在大多数情况下不会改变onChange......
  • 数据分析的五大流程:需求、获取、处理、分析、可视化
    数据分析的五大流程:需求、获取、处理、分析、可视化......
  • 深入学习和理解Django视图层:处理请求与响应
    title:深入学习和理解Django视图层:处理请求与响应date:2024/5/417:47:55updated:2024/5/417:47:55categories:后端开发tags:Django请求处理响应生成模板渲染表单处理中间件异常处理第一章:Django框架概述1.1什么是Django?Django是一个高级的PythonWeb......
  • Python自动化测试中JSON数据处理遇到的错误
    在接口自动化测试领域,使用Excel管理测试数据是一种常见的做法。本文将分享一个实际案例,介绍在Python自动化测试框架中,如何从响应结果中提取所需数据,并探讨在处理JSON格式数据时遇到的一个典型问题及其解决方案。首先,让我们了解测试数据的基本格式。在Excel中,我们定义了一个名为ex......
  • kube-ovn cni处理流程
    kubelet调用二进制文件/opt/cni/bin/kube-ovn。cmd/cni/cni.go创建和删除分别对应cmdAdd和cmdDel函数。pkg/request/cniserver.go二进制文件/opt/cni/bin/kube-ovn调用本地unixsocket,把cni请求转发给kubeovncnidaemon。pkg/daemon/server.goRunServer函数监听本地unixsock......