我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python具名元组如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python具名元组如何使用

这篇文章主要介绍了python具名元组如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python具名元组如何使用文章都会有所收获,下面我们一起来看看吧。

collections.namedtuple用于构造带字段名的元组。对应类型为typing.NamedTuple(可用作超类)。

具名元组

namedtuple对象的定义:

collections.namedtuple(typename, field_names, verbose=False, rename=False, defaults=None, module=None):

  • typename:元组名称

  • field_names:是字段序列(如,[‘x’, ‘y’]);

  • rename:为true时,字段名无效时(如,重名或使用关键字)会被自动替换为位置名(如,_1);

  • defaults:字段的默认值,若为iterable对象,则依次对应field_names中字段的缺省值;

from collections import namedtupleColor = namedtuple("Color", "r g b alpha")def convert_to_color(desc: str, alpha: float = 0.0):    if desc == "green":        return Color(r=50, g=205, b=50, alpha=alpha)    elif desc == "blue":        return Color(r=50, g=0, b=255, alpha=alpha)    else:        return Color(r=50, g=0, b=0, alpha=alpha)

从可迭代对象(Iterable)构造具名元组:

c = Color._make([10, 20, 30, 0.1])nc = Color._make((10, 20, 30, 0.1))print("r:", c.r)

元组操作

具名元组修改:不能直接修改里面的值,可通过_replace构造一个新的:

c = {"r": 50, "g": 205, "b": 50, "alpha": 0.5}nc = c._replace(r=100)

把字典转换为具名元组:

c = {"r": 50, "g": 205, "b": 50, "alpha": 0.5}nc = Color(**c)

具名元组转换为字典(通过_asdict方法):

c = Color(r=50, g=0, b=0, alpha=0.5)d = c._asdict()

具名元组转换为元组:

c = Color(r=50, g=0, b=0, alpha=0.5)t = tuple(c)

属性

  • 属性_fields包含所有字段的元组:如('r', 'g', 'b', 'alpha');

  • 属性__annotations__包含字段与对应类型的字典:如{'r': <class 'float'>, 'g': <class 'float'>, 'b': <class 'float'>, 'alpha': <class 'float'>};

  • 属性_field_defaults保证有初始值的字段与初始值的字典:如{'alpha': 0.0};

排序

具名元组排序:通过operator库中的attrgetter可指定排序字段:

from operator import attrgettercolors = [    Color(r=50, g=205, b=50, alpha=0.1),    Color(r=50, g=205, b=50, alpha=0.5),    Color(r=50, g=0, b=0, alpha=0.3)]out = sorted(colors, key=attrgetter("alpha"))print(out)

与字典比较

字典dict是一种非常通用的数据结构,很容易被滥用,同时相对namedtuple,有以下问题:

  • 字典是不可散列,因此无法将其存储在set或其他字典中;

  • 字典是可变的,可以根据需要添加任意数量的新键;

与dict类似,在namedtuple中可以将值分配给单个变量并根据需要使用。但:

namedtuple是不可变的,不会意外添加新的值(键);

数据类

数据类详情可参见《数据类(dataclass)简介》。

dataclass修饰

python3.7中引入了数据类(Data Class),可看做是“具有默认值的可变namedtuple”:

  • 可方便地添加doc;

  • 可定义可选字段;

from dataclasses import dataclass# frozen设为true后,字段内容将不允许修改(与namedtuple完全类似)# 否则可修改字段;并可任意添加字段(如,c.n=1);@dataclass(frozen=True)class DColor:    """A regular class that represents a color."""    r: float    g: float    b: float    alpha: float = 0.0# c = DColor(r=10, g=20, b=30)c = DColor(10, 20, 30)

继承NamedTuple

通过继承NamedTuple也可方便定义(同时可定义字段的初始值,有初始值的字段必须在无初始字段后面):

from typing import NamedTupleclass NColor(NamedTuple):    """A namedtuple that represents a color."""    r: float    g: float    b: float    alpha: float = 0.0nc = NColor(100, 110, 120)

关于“python具名元组如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“python具名元组如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python具名元组如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python具名元组如何使用

这篇文章主要介绍了python具名元组如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python具名元组如何使用文章都会有所收获,下面我们一起来看看吧。collections.namedtuple用于构
2023-07-05

python具名元组(namedtuple)的具体使用

本文主要介绍了python具名元组(namedtuple)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-21

如何在python项目中定义具名元组

这篇文章主要介绍了如何在python项目中定义具名元组,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、
2023-06-06

Python命名元组怎么使用

今天小编给大家分享一下Python命名元组怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。创建命名元组Python集合
2023-07-06

Python列表和元组如何使用

这篇文章主要介绍“Python列表和元组如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python列表和元组如何使用”文章能帮助大家解决问题。列表学习要点先看一遍列表定义:列表是可变序列,也
2023-07-04

如何在python使用元组进行拆包

这篇文章主要为大家详细介绍了如何在python使用元组进行拆包,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4
2023-06-06

Python元组定义及集合如何使用

今天小编给大家分享一下Python元组定义及集合如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一. 元组元组是Pyt
2023-07-02

怎么在python中定义一个具名元组

今天就跟大家聊聊有关怎么在python中定义一个具名元组,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth
2023-06-14

python元组如何获取元素

小编给大家分享一下python元组如何获取元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、通过索引获取元素>>> letters = (‘a’, ‘b’,
2023-06-15

如何使用C++多元组Tuple

这篇文章主要讲解了“如何使用C++多元组Tuple”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用C++多元组Tuple”吧!前言tuple 是类似于pair的模板。每个pair的成
2023-06-16

python中的元组怎么使用

在Python中,元组是一个不可变序列,可以将多个元素组合在一起。以下是一些元组的常见用法:1. 定义元组:使用圆括号将元素括起来,用逗号分隔。例如:`my_tuple = (1, 2, 3)`。2. 访问元组元素:可以使用索引来访问元组中
2023-10-11

Go单元测试工具gomonkey如何使用

使用Go单元测试工具gomonkey,可以模拟函数的返回值、修改函数的行为,以及捕获函数的调用参数等。下面是使用gomonkey的基本步骤:1. 安装gomonkey:```shellgo get -u github.com/agiledr
2023-08-08

python如何使用cProfile工具

这篇文章给大家分享的是有关python如何使用cProfile工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Profile性能分析工具cProfile(语言编写的测试模块)是一个标准库内建的性能分析工具,可以
2023-06-17

Python元组怎么创建使用

今天小编给大家分享一下Python元组怎么创建使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。元组(Tuple)元组是有序
2023-07-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录