Python collections系列之可命名元组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
以上是关于Python collections系列之可命名元组的主要内容,如果未能解决你的问题,请参考以下文章
Python_collection_namedtuple可命名元组
第24篇 collections模块 双端队列 命名元组 有序字典 默认字典