精华内容
下载资源
问答
  • namedtuple

    2020-06-06 19:47:25
    最近在看程序的时候,发现了namedtuple,不太熟悉,记录一下。 Conv = namedtuple('Conv', ['kernel', 'stride', 'depth', 'ratio']) DepthwiseConv = namedtuple('DepthwiseConv', ['kernel', 'stride', 'depth', '...

    最近在看程序的时候,发现了namedtuple,不太熟悉,记录一下。

    Conv = namedtuple('Conv', ['kernel', 'stride', 'depth', 'ratio'])
    DepthwiseConv = namedtuple('DepthwiseConv', ['kernel', 'stride', 'depth', 'ratio'])
    InvResBlock = namedtuple('InvResBlock', ['kernel', 'stride', 'depth', 'ratio', 'repeate'])
    

    Python中的tuple可以存储一个Python对象序列。与list不同的是,不能改变tuple中元素的值。tuple的元素可以通过索引进行访问:
    在这里插入图片描述

    Tuple还有一个兄弟,叫namedtuple。虽然都是tuple,但是功能更为强大。对于namedtuple,你不必再通过索引值进行访问,你可以把它看做一个字典通过名字进行访问,只不过还是不能改变其中的值。
    在这里插入图片描述

    为了构造一个namedtuple需要两个参数,分别是tuple的名字和其中域的名字。比如在上例中,tuple的名字是“Animal”,它包括三个域,分别是“name”、“age”和“type”。

    Namedtuple比普通tuple具有更好的可读性,可以使代码更易于维护。同时与字典相比,又更加的轻量和高效。但是有一点需要注意,就是namedtuple中的属性都是不可变的。任何尝试改变其属性值的操作都是非法的。
    在这里插入图片描述

    Namedtuple还有一个非常好的一点是,它与tuple是完全兼容的。也就是说,我们依然可以用索引去访问一个namedtuple。

    在这里插入图片描述
    个人认为,在程序中使用namedtuple可以方便的实现参数的设置与调用。
    参考:https://baijiahao.baidu.com/s?id=1613589944704758634&wfr=spider&for=pc

    展开全文
  • Namedtuple

    2020-10-25 09:26:53
    Name the constants from collections import namedtuple GridState = namedtuple('GridState', 'start ending empty obstacle') grid_state = GridState( start = 1, ending = 2, empty = 0, obstacle = -1)

    Name the constants

    from collections import namedtuple
    GridState = namedtuple('GridState', 'start ending empty obstacle')
    grid_state = GridState( start = 1, ending = 2, empty = 0, obstacle = -1)
    
    展开全文
  • Python namedtuple

    2019-01-30 13:21:31
    Python元组的升级版本 -- namedtuple(具名元组) 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造...

    Python元组的升级版本 -- namedtuple(具名元组)

    因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。具名元组的实例和普通元组消耗的内存一样多,因为字段名都被存在对应的类里面。这个类跟普通的对象实例比起来也要小一些,因为 Python 不会用 __dict__ 来存放这些实例的属性。

    namedtuple 对象的定义如以下格式:

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

    返回一个具名元组子类 typename,其中参数的意义如下:

    • typename:元组名称
    • field_names: 元组中元素的名称
    • rename: 如果元素名称中含有 python 的关键字,则必须设置为 rename=True
    • verbose: 默认就好

    下面来看看声明一个具名元组及其实例化的方法:

    import collections
    
    # 两种方法来给 namedtuple 定义方法名
    # User = collections.namedtuple('User', ['name', 'age', 'id'])
    User = collections.namedtuple('User', 'name age id')
    user = User('tester', '22', '464643123')
    
    print(user)  # User(name='tester', age='22', id='464643123')
    print(user.name)  # tester
    print(user.id)  # 464643123
    print(user.age)  # 22

    collections.namedtuple('User', 'name age id') 创建一个具名元组,需要两个参数,一个是类名,另一个是类的各个字段名。后者可以是有多个字符串组成的可迭代对象,或者是有空格分隔开的字段名组成的字符串(比如本示例)。具名元组可以通过字段名或者位置来获取一个字段的信息。

    输出结果:
    User(name='tester', age='22', id='464643123')
    tester
    464643123
    22

    具名元组的特有属性:

    类属性 _fields:包含这个类所有字段名的元组

    类方法 _make(iterable):接受一个可迭代对象来生产这个类的实例

    实例方法 _asdict():把具名元组以 collections.OrdereDict 的形式返回,可以利用它来把元组里的信息友好的展示出来

    from collections import namedtuple
    
    # 定义一个namedtuple类型User,并包含name,sex和age属性。
    User = namedtuple('User', ['name', 'sex', 'age'])
    
    # 创建一个User对象
    user = User(name='Runoob', sex='male', age=12)
    
    # 获取所有字段名
    print( user._fields )
    
    # 也可以通过一个list来创建一个User对象,这里注意需要使用"_make"方法
    user = User._make(['Runoob', 'male', 12])
    
    print( user )
    # User(name='user1', sex='male', age=12)
    
    # 获取用户的属性
    print( user.name )
    print( user.sex )
    print( user.age )
    
    # 修改对象属性,注意要使用"_replace"方法
    user = user._replace(age=22)
    print( user )
    # User(name='user1', sex='male', age=21)
    
    # 将User对象转换成字典,注意要使用"_asdict"
    print( user._asdict() )
    # OrderedDict([('name', 'Runoob'), ('sex', 'male'), ('age', 22)])

    以上实例输出结果为:

    ('name', 'sex', 'age')
    User(name='Runoob', sex='male', age=12)
    Runoob
    male
    12
    User(name='Runoob', sex='male', age=22)
    OrderedDict([('name', 'Runoob'), ('sex', 'male'), ('age', 22)])
    展开全文
  • python namedtuple

    2020-02-11 12:06:31
    python namedtuple namedtuple 命名元组 元组的缺点:只能通过数字索引来取值,当元组中元素非常大时,通过索引取值非常不方便,内存消耗也大 命名元组:通过给每个元素命名,可通过名字来获取对应的元素(当然可以...

    python namedtuple

    namedtuple 命名元组

    元组的缺点:只能通过数字索引来取值,当元组中元素非常大时,通过索引取值非常不方便,内存消耗也大

    命名元组:通过给每个元素命名,可通过名字来获取对应的元素(当然可以通过下标索引来获取对应的元素)

    1. 创建namedtuple
    from collections import namedtuple
    Person = namedtuple("Person", "name, age")
    
    p1 = Person("nlj", 30)
    print p1.name, p1.age
    
    1. 将列表或者元组转化为namedtuple

      li = ["zhangsan", 30]
      named_tuple_1 = Person._make(li)
      print named_tuple_1
      
    2. 将namedtuple转化为字典

      p1._asdict()
      
    展开全文
  • 首先要知道的是python3中有typing模块含有类NamedTuple,collections模块含有函数namedtuple(该函数返回一个tuple的子类),这是官方文档传送门。 collections.namedtuple namedtuple将创建一个和tuple类似的object...
  • namedtuple简介

    2017-10-23 14:59:00
    namedtuple是继承自tuple的子类。namedtuple创建一个和tuple类似的对象,而且对象拥有可访问的属性 from collections import namedtuple # 定义一个namedtuple类型User,并包含name,sex和age属性。User = ...
  • from typing import NamedTuple , Optional class Widget ( NamedTuple ): a : int b : Optional [ str ] 生成棉花糖模式 from marshmallow_namedtuple import NamedTupleSchema class WidgetSchema ( ...
  • namedtuple用法

    千次阅读 2018-05-20 10:17:28
    Python中tuple元素采用index访问,但是collections模块的namedtuple的对象可以采用item的index以及item的name进行访问。from collections import namedtuple User=namedtuple('User',['name','sex','age']) user=...
  • namedtuple使用

    2016-02-16 14:55:43
    namedtuple顾名思义,就是可以通过名字访问成员的tuple。 我们知道,要访问普通tuple类型的成员,只能通过索引,例如: >>> t = ('a', 'b', 'c') >>> print(t[0], t[1], t[2]) a b c 而namedtuple在此基础上还...
  • namedtuple小试

    2018-01-15 18:01:47
    代码: from collections import namedtuple point = namedtuple('p', ['x', 'y']) p1 = point(1, 2) print p1 print p1.x print p1.y print p1[0] print p1[1]结果:p(x=1, y=2) 1 2 1 2
  • namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型。相比于list,tuple中的元素不可修改,在映射中可以当键使用。  namedtuple: namedtuple类位于collections模块,有了namedtuple后...
  • 具名元组namedtuple

    千次阅读 2020-11-20 16:53:03
    具名元组namedtuple 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。 具名...
  • 利用 collections 模块中的 namedtuple 函数 from collections import namedtuple namedtuple(typename, field_names) typename:命名元组的名称; field_names: 元祖中元素的名称此字段有多种表达方式 三种命名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,450
精华内容 4,180
关键字:

namedtuple