Python的collections模块中namedtuple结构使用示例

namedtuple顾名思义,就是名字+元组的数据结构,下面就来看一下Python的collections模块中namedtuple结构使用示例

namedtuple 就是命名的 tuple,比较像 C 语言中 struct。一般情况下的 tuple 是 (item1, item2, item3,...),所有的 item 都只能按照 index 访问,没有明确的称呼,而 namedtuple 就是事先把这些 item 命名,以后可以方便访问。

?


1

2

3

4

5

6

7

8

9

10

11

12

13

from collections import namedtuple

# 初始化需要两个参数,第一个是 name,第二个参数是所有 item 名字的列表。

coordinate = namedtuple(‘Coordinate‘, [‘x‘, ‘y‘])

c = coordinate(10, 20)

# or

c = coordinate(x=10, y=20)

c.x == c[0]

c.y == c[1]

x, y = c

namedtuple 还提供了 _make 从 iterable 对象中创建新的实例:

?


1

coordinate._make([10,20])

再来举个栗子:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

# -*- coding: utf-8 -*-

"""

比如我们用户拥有一个这样的数据结构,每一个对象是拥有三个元素的tuple。

使用namedtuple方法就可以方便的通过tuple来生成可读性更高也更好用的数据结构。

"""

from collections import namedtuple

websites = [

 (‘Sohu‘, http://www.google.com/, u‘张朝阳‘),

 (‘Sina‘, http://www.sina.com.cn/, u‘王志东‘),

 (‘163‘, http://www.163.com/, u‘丁磊‘)

]

Website = namedtuple(‘Website‘, [‘name‘, ‘url‘, ‘founder‘])

for website in websites:

 website = Website._make(website)

 print website

 print website[0], website.url

结果:

?


1

2

3

4

5

6

Website(name=‘Sohu‘, url=‘http://www.google.com/‘, founder=u‘\u5f20\u671d\u9633‘)

Sohu http://www.google.com/

Website(name=‘Sina‘, url=‘http://www.sina.com.cn/‘, founder=u‘\u738b\u5fd7\u4e1c‘)

Sina http://www.sina.com.cn/

Website(name=‘163‘, url=‘http://www.163.com/‘, founder=u‘\u4e01\u78ca‘)

163 http://www.163.com/

原文地址:https://www.cnblogs.com/fmgao-technology/p/9080514.html

时间: 2024-09-30 15:07:52

Python的collections模块中namedtuple结构使用示例的相关文章

简介Python的collections模块中defaultdict类型

这里我们来简介Python的collections模块中defaultdict类型的用法,与内置的字典类最大的不同在于初始化上,一起来看一下: defaultdict 主要用来需要对 value 做初始化的情形.对于字典来说,key 必须是 hashable,immutable,unique 的数据,而 value 可以是任意的数据类型.如果 value 是 list,dict 等数据类型,在使用之前必须初始化为空,有些情况需要把 value 初始化为特殊值,比如 0 或者 ''. from c

python collections模块中namedtuple()

最近看Ansible API中引用了collections的namedtuple() 网上搜了一番后,发现是一个集合模块,提供了多种集合类. In [1]: from collections import                Callable        Hashable        Mapping         namedtuple      ValuesView      _field_template _itemgetter                    Conta

Python中collections模块中的Counter()类

最近在刷leetcode,发现很多题目的思路都很相似.其中,collections模块中的Counter()多次在习题中碰到,很有必要对该知识点总结一下,加深理解. 1.collections模块 collections模块自Python 2.4 版本之后,引入除了dict.list.set.tuple以外的一些特俗容器,分别是: namedtuple():factory function for creating tuple subclasses with named fields(versi

python之collections模块(OrderDict,defaultdict)

前言: import collections print([name for name in dir(collections) if not name.startswith("_")]) ['AsyncIterable', 'AsyncIterator', 'Awaitable', 'ByteString', 'Callable', 'ChainMap', 'Container', 'Coroutine', 'Counter', 'Generator', 'Hashable', 'It

python的Collections 模块

Collections 模块 知识点 Counter 类 defaultdict 类 namedtuple 类 在这个实验我们会学习 Collections 模块.这个模块实现了一些很好的数据结构,它们能帮助你解决各种实际问题. >>> import collections 这是如何导入这个模块,现在我们来看看其中的一些类. 1. Counter Counter 是一个有助于 hashable 对象计数的 dict 子类.它是一个无序的集合,其中 hashable 对象的元素存储为字典的

【python】collections模块(有序字典,计数器,双向队列)

collections模块基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型: 1.namedtuple(): 生成可以使用名字来访问元素内容的tuple子类2.deque: 双端队列,可以快速的从另外一侧追加和推出对象3.Counter: 计数器,主要用来计数4.OrderedDict: 有序字典5.defaultdict: 带有默认值的字典 n

collections 模块(namedtuple, deque, Counter )

基本介绍 我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型: namedtuple(): 生成可以使用名字来访问元素内容的tuple子类 deque: 双端队列,可以快速的从另外一侧追加和推出对象 Counter: 计数器,主要用来计数 OrderedDict: 有序字典 defaultdict: 带有默认值的字典 namedtuple() namedtu

Python基础 collections模块

collections模块 collections模块在内置数据类型(dict.list.set.tuple)的基础上,还提供了几个额外的数据类型:ChainMap.Counter.deque.defaultdict.namedtuple和OrderedDict等. 1.namedtuple: 生成可以使用名字来访问元素内容的tuple子类2.deque: 双端队列,可以快速的从另外一侧追加和推出对象3.Counter: 计数器,主要用来计数4.OrderedDict: 有序字典5.defaul

python 迭代器 itertools模块中常用工具函数

迭代器 itertools模块中常用工具函数,提供了接近二十个迭代器工具函数. 原文地址:https://www.cnblogs.com/bcyczhhb/p/11809842.html