返回顶部
首页 > 资讯 > 后端开发 > Python >2 . python Collectio
  • 455
分享到

2 . python Collectio

pythonCollectio 2023-01-31 06:01:30 455人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

nametuple() 是具有命名字段的元组的工厂函数命名元组为元组中每个位置赋予含义,并允许更具可读性的自编写代码 它们可以在任何使用常规元组的地方使用,并且他们添加了按名称而不是位置索引访问字段的功能。用法:collections.na

nametuple() 是具有命名字段的元组的工厂函数


命名元组为元组中每个位置赋予含义,并允许更具可读性的自编写代码 

它们可以在任何使用常规元组的地方使用,并且他们添加了按名称而不是位置索引访问字段的功能。


用法:

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


    返回名为typename的新元组子类。 新的子类用于创建类似元组的对象,这些对象具有可以通过属性查找访问的字段以及可索引和可迭代的字段。 子类的实例也有一个有用的docstring(带有typename和field_names)和一个有用的__repr __()方法,它以name = value格式列出元组内容。


    field_names是单个字符串,每个字段名由"空格"和"/"或"逗号"分隔,例如'x y'或'x,y'。或者,field_names 可以是一系列字符串,例如['x', 'y']。


    任何有效的python标识符都可以用于字段名称,除了以下划线开头的名称外。 

    有效标识符由字母,数字和下划线组成,但不以数字或下划线开头,并且不能是关键字,例如:class,for,return,global,pass或raise。


    如果 rename 为true,则无效的字段名会自动替换为位置名称。 

    例如,将['abc','def','ghi','abc']转换为['abc','_1','ghi','_3'],从而消除关键字def和重复字段名abc。


    如果verbose为true,则在构建类定义之后打印它。 此选项已过时; 相反,打印_source属性更简单。

    如果定义了module,则将命名元组的__module__属性将设置为该值。


命名的元组实例没有每个实例的字典,因此它们是轻量级的,并且不需要比常规元组占用更多的内存。

在版本3.1中更改:添加了对rename的支持。

在版本3.6中更改:verbose 和 rename 参数成为 keyWord-only 参数。

在版本3.6中更改:添加了module参数。

image.png


命名元组对于将字段名称分配给由csv或sqlite3模块返回的结果元组特别有用:

image.png

        除了从元组继承的方法外,命名元组还支持三个额外的方法和两个属性。为防止与字段名称冲突,方法和属性名称以下划线开头。


(1)claSSMethod 

    somenamedtuple._make(iterable)

                从现有序列生成新实例或可迭代的类方法。

            image.png

            

    somenamedtuple._asdict()

                返回一个新的OrderedDict,它将字段名称映射到它们对应的值:

            image.png


            somenamedtuple._replace(**kwargs)

                返回指定元组的新实例,用新值替换指定字段:

             image.png


    somenamedtuple._source

                带有纯Python源代码的字符串,用于创建命名元组类。 源使得命名元组自我记录。 它可以打印,使用exec()执行,或保存到文件并导入。


                

    somenamedtuple._fields

                列出字段名称的字符串元组。 用于内省和从现有命名元组中创建新的命名元组类型。

            image.png

            

            要检索名称存储在字符串中的字段,请使用getattr( )函数:

            image.png

    

            要将字典转换为命名元组,请使用double-star-operator(双星运算符)(如解包参数列表中所述):

            image.png


              由于命名元组是常规的Python类,因此可以使用子类轻松添加或更改功能。以下是如何添加计算字段和固定宽度打印格式的方法:

              image.png


               

                上面显示的子类将__slots__设置为一个空元组。 这有助于防止创建实例字典,从而降低内存需求。

                子类化对于添加新的存储字段没有用处。 

                相反,只需从_fields属性创建一个新的命名元组类型:

                image.png

   

                可以通过直接分配__doc__字段来自定义文档字符串:

                image.png

                

                可以使用_replace()来自定义原型实例来实现默认值:

                image.png

--结束END--

本文标题: 2 . python Collectio

本文链接: https://lsjlt.com/news/190484.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 2 . python Collectio
    nametuple() 是具有命名字段的元组的工厂函数命名元组为元组中每个位置赋予含义,并允许更具可读性的自编写代码 它们可以在任何使用常规元组的地方使用,并且他们添加了按名称而不是位置索引访问字段的功能。用法:collections.na...
    99+
    2023-01-31
    python Collectio
  • 3 . python Collectio
    语法:    class collections.deque([iterable[, maxlen]])    返回从左到右初始化的新deque对象(使用append())和来自iterable(可迭代的)的数据。 如果未指定iterabl...
    99+
    2023-01-31
    python Collectio
  • python 内置模块collectio
    1、namedtuple from collections import namedtuple websites = [('Sohu', 'http://www.google.com/', u'张朝阳'),('Sina', 'http://...
    99+
    2023-01-31
    模块 python collectio
  • Python(2)
    一、python是强类型语言:1、两个对象比较:(1)、身份(内存地址):两个对象的引用是否相同。 id(a)==id(b)或者a is b (2)、值:两个对象的数据是否相等。 a==b(3)、类型:两个对象的类型是否相同。 type(a...
    99+
    2023-01-31
    Python
  • selenium 2 + python
    在使用selenium 2的时候,经常会碰到打开一个页面后新页面以新窗口打开,因为脱离当前窗口需要重新定位窗口,可以用以下方法定位到需要的窗口。#父窗口是0 browser.switch_to_window(browser.window_h...
    99+
    2023-01-31
    selenium python
  • Django1.7+python 2.
    配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是sqlite作为开发数据库进行学习,按照之前看教程的原则,好像就是说开发环境要和生产环境尽量的一致,...
    99+
    2023-01-31
    python
  • zero python.2
    1.使用函数 2.装饰器 3.异常处理 4.socket 1.使用函数  给函数传递参数时,可以灵活传递实参数量。形参在定义时,使用到列表、字典。# 定义函数 def f (hostip, port='52161'):     print(...
    99+
    2023-01-31
    python
  • Python 2 和 Python 3
      Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷。---摘录自《流畅的Python》   你可能从来没有听说过学 J...
    99+
    2023-01-31
    Python
  • #2 安装Python
    上一篇文章主要记录 了Python简介,相信你已经爱上了小P,俗话说的好:公欲善其事,必先利其器,所以本文将带领你安装Python3! Windows平台 1.确认Windows位数: 鼠标右击此电脑-->打开属性,如下图所示: ...
    99+
    2023-01-30
    Python
  • python 函数(2)
    一、内容回顾 1.面试题相关: 1.py2和py3的区别 2.运算符的计算 :3 or 9 and 8 3.字符串的反转 4.is和==的区别 5.v1 = (1) v2 = 1 v3 = (1,)有什么区别 v1 、v2都是数...
    99+
    2023-01-31
    函数 python
  • Python练习【2】
    题目1: 用Python实现队列(先入先出) 入队 出队 队头 队尾 队列是否为空 显示队列元素 代码: list=[] ##定义空列表用于存储数据 tip = """ ******队...
    99+
    2023-01-31
    Python
  • ansible python api 2
     最近想利用python来调用anbile来实现一些功能,发现ansible的api已经升级到了2.0,使用上比以前复杂了许多。 这里我参考了官方文档的例子,做了一些整改,写了一个python调用ansible的函数,执行过程中输出执行结果...
    99+
    2023-01-31
    ansible python api
  • python练习2
    # 理论性1. 写出python中的几种分支结构,并解释其执行过程;2. 写出python中的几种循环结构,并解释其执行过程;3. python中是否支持switch语句   如果支持,写出该语句格式;   如果不支持,说说python中怎...
    99+
    2023-01-31
    python
  • python 第2天
    import easygui,randomsecret = random.randint(1,99)easygui.msgbox("""I have a secret ,It is a number from 1-99 ,you have ...
    99+
    2023-01-31
    python
  • Notes for python (2)
    使用列表 例9.1 使用列表 #!/usr/bin/python # Filename: using_list.py # This is my shopping list shoplist = ['apple', '...
    99+
    2023-01-31
    Notes python
  • 2.Python基础
    一.语句和语法 一.继续 (\) Python语句,一般使用换行分隔,也就是说一行一个语句, 一行过场的语句可以使用反斜杠"\" 分解成几行. 两种情况列外一个语句不使用反斜杠也可以跨行. 在使用闭合操作符时,单一语句可以哭啊多行....
    99+
    2023-01-31
    基础 Python
  • Python作业2
       1.分别取出0到10中的偶数和奇数。   2.判断一个数是否是质数 *程序*测试   3题目*程序*测试...
    99+
    2023-01-31
    作业 Python
  • Python之禅---2、python介
    1,、python的由来     python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器。Python这个名字,来自Guido所挚爱的电视剧Mo...
    99+
    2023-01-31
    Python python
  • Python小九九--Python 2
    for i in range(1, 10): for j in range(1, i+1): print '%s*%s=%s' % (j, i, i*j), # 逗号--不换行输出 ...
    99+
    2023-01-31
    九九 Python
  • Python自动化开发学习2-2
    集合创建集合可以用set(),或者直接用{}set_a = set([1,2,3,4,5]) set_b = {1,3,5,7,9} print(set_a) print(set_b) print(type(set_a),type(set_...
    99+
    2023-01-31
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作