Python collections系列之可命名元组

可命名元组(namedtuple) 

根据nametuple可以创建一个包含tuple所有功能以及其他功能的类

1、创建一个坐标类

import collections
# 创建类, defaultdict,坐标中会使用
MytupleClass = collections.namedtuple(‘MytupleClass‘,[‘x‘, ‘y‘, ‘z‘])

obj = MytupleClass(11, 22, 33)

2、查询类中的x,y,z坐标

# 默认情况下元组只能使用索引进行访问,通过创建坐标类后,可以使用x,y,z进行访问

print(obj.x)
print(obj.y)
print(obj.z)

输出结果:
11
22
33

3、可命名元组的方法

# 获取MytupleClass的方法

print(help(MytupleClass))

class Mytuple(__builtin__.tuple)
 |  Mytuple(x, y)
 |
 |  Method resolution order:
 |      Mytuple
 |      __builtin__.tuple
 |      __builtin__.object
 |
 |  Methods defined here:
 |
 |  __getnewargs__(self)
 |      Return self as a plain tuple.  Used by copy and pickle.
 |
 |  __getstate__(self)
 |      Exclude the OrderedDict from pickling
 |
 |  __repr__(self)
 |      Return a nicely formatted representation string
 |
 |  _asdict(self)
 |      Return a new OrderedDict which maps field names to their values
 |
 |  _replace(_self, **kwds)
 |      Return a new Mytuple object replacing specified fields with new values
 |
 |  ----------------------------------------------------------------------
 |  Class methods defined here:
 |
 |  _make(cls, iterable, new=<built-in method __new__ of type object>, len=<built-in function len>) from __builtin__.type
 |      Make a new Mytuple object from a sequence or iterable
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(_cls, x, y)
 |      Create new instance of Mytuple(x, y)
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __dict__
 |      Return a new OrderedDict which maps field names to their values
 |
 |  x
 |      Alias for field number 0
 |
 |  y
 |      Alias for field number 1
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  _fields = (‘x‘, ‘y‘)
 |
 |  ----------------------------------------------------------------------
 |  Methods inherited from __builtin__.tuple:
 |
 |  __add__(...)
 |      x.__add__(y) <==> x+y
 |
 |  __contains__(...)
 |      x.__contains__(y) <==> y in x
 |
 |  __eq__(...)
 |      x.__eq__(y) <==> x==y
 |
 |  __ge__(...)
 |      x.__ge__(y) <==> x>=y
 |
 |  __getattribute__(...)
 |      x.__getattribute__(‘name‘) <==> x.name
 |
 |  __getitem__(...)
 |      x.__getitem__(y) <==> x[y]
 |
 |  __getslice__(...)
 |      x.__getslice__(i, j) <==> x[i:j]
 |
 |      Use of negative indices is not supported.
 |
 |  __gt__(...)
 |      x.__gt__(y) <==> x>y
 |
 |  __hash__(...)
 |      x.__hash__() <==> hash(x)
 |
 |  __iter__(...)
 |      x.__iter__() <==> iter(x)
 |
 |  __le__(...)
 |      x.__le__(y) <==> x<=y
 |
 |  __len__(...)
 |      x.__len__() <==> len(x)
 |
 |  __lt__(...)
 |      x.__lt__(y) <==> x<y
 |
 |  __mul__(...)
 |      x.__mul__(n) <==> x*n
 |
 |  __ne__(...)
 |      x.__ne__(y) <==> x!=y
 |
 |  __rmul__(...)
 |      x.__rmul__(n) <==> n*x
 |
 |  __sizeof__(...)
 |      T.__sizeof__() -- size of T in memory, in bytes
 |
 |  count(...)
 |      T.count(value) -> integer -- return number of occurrences of value
 |
 |  index(...)
 |      T.index(value, [start, [stop]]) -> integer -- return first index of value.
 |      Raises ValueError if the value is not present.

Mytuple

时间: 2024-10-25 09:30:06

Python collections系列之可命名元组的相关文章

Python - Collections系列

collections的常用类型有: 计数器(Counter) 双向队列(deque) 默认字典(defaultdict) 有序字典(OrderedDict) 可命名元组(namedtuple) 使用以上类型时需要导入模块 from collections import * 详见http://blog.csdn.net/songfreeman/article/details/50502194 原文地址:https://www.cnblogs.com/imageSet/p/8455266.html

Python collections系列之双向队列

双向队列(deque) 一个线程安全的双向队列 1.创建一个双向队列 import collections d = collections.deque() d.append('1') d.appendleft('10') d.appendleft('a') d.appendleft('1') 2.查看双向队列 print(d) 输出结果: deque(['1', 'a', '10', '1']) 3.查看双向队列的方法 >>> dir(d) ['__class__', '__copy__

python 数据结构 - collections系列

python中collections系列是对字典.元祖等数据结构的补充,不是python内置的,在使用之前,需要用 import collections 导入. 在collections系列中主要有以下内容: 1. Counter(seq) Counter()继承了dict类,其中seq为可迭代对象.接收seq,并以字典形式返回seq中每个元素(hashable)出现的次数. 1 import collections 2 3 s = 'abcdedcbae' 4 l = ['a','b','c'

Python 学习日记第五篇 -- collections系列

一.计数器(counter) 计数器(counter)以字典的形式返回序列中各个字符出现的次数,值为key,次数为value #!/usr/bin/env python #-*- coding:utf-8 -*- #导入collections模块 import collections counter_test = collections.Counter("asfafjhadgkhjkgfjhgfjhaghdg") print(counter_test) #返回值 C:\Python27

python namedtuple(命名元组)

collections模块基本介绍 collections在通用的容器dict,list,set和tuple之上提供了几个可选的数据类型 namedtuple() factory function for creating tuple subclasses with named fields deque list-like container with fast appends and pops on either end ChainMap dict-like class for creatin

python 命名元组(namedtuple)

我们知道c/c++语言中,有结构体这种数据类型: struct{ string name; int age; char sex; }student; 在对结构体对象进行赋值或者取值时可以使用.运算符进行操作. 那么问题来,python中有没有这个数据类型呢?答案是肯定有的,它就是命名元组(namedtyple). 首先来看一下python中普通元组的不方便之处: Bob=("bob",30,'male') #如果想知道Bobde 名字,则需要使用索引位置进行读取,如下 name=Bob

Python学习—常用时间类与命名元组

常用时间类与命名元组 1. 常用时间类date 日期类time 时间类datetimetimedelat 时间间隔2. 一些术语和约定的解释:1.时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理1970纪元年以前的时间或太遥远的未来(处理极限取决于C函数库,对于32位系统而言,是2038年)2.UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是

7.Python自学之路:collections系列

一丶计数器(counter) counter是对字典类型的补充,用于追踪值的出现次数,它集成了父类dict所有的功能. import collections obj = collections.Counter('aaabbbcccddd') #collections文件下的Counter类 print(obj) #以字典的形式返回 ret = obj.most_common(4) print(ret) #前4名最多的 for k in obj.elements(): #element原生的值 p

python小白-day3 collections系列

一.计数器(Counter) Counter是对字典类型的补充,用于追踪值的出现次数. 注:因Counter继承于dict类,所以其具备dict类的所有功能 1 import collections 2 c1 = collections.Counter('skdhflsdkngsnlknvdlfb') 3 print(c1) Counter 1.__missing__(self, key)对于不存在的元素,返回计数器为0 import collections c1 = collections.C