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

WBOY
Release: 2016-07-22 08:56:24
Original
1177 people have browsed it

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

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
Copy after login

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

coordinate._make([10,20])
Copy after login

再来举个栗子:

# -*- 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
Copy after login

结果:

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/
Copy after login

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!