Briefly explain the usage of namedtuple class in Python programming

WBOY
Release: 2016-07-21 14:53:15
Original
1292 people have browsed it

Python’s Collections module provides many useful data container types, one of which is namedtuple.

namedtuple can be used to create data types similar to tuples. In addition to being able to use indexes to access data, it can iterate, and it can also conveniently access data through attribute names.

In python, a traditional tuple is similar to an array. Each element can only be accessed through subscripts. We also need to annotate what data each subscript represents. By using namedtuple, each element has its own name, similar to the struct in C language, so that the meaning of the data can be clear at a glance. Of course, declaring namedtuple is very simple and convenient.
The code example is as follows:

from collections import namedtuple
 
Friend=namedtuple("Friend",['name','age','email'])
 
f1=Friend('xiaowang',33,'xiaowang@163.com')
print(f1)
print(f1.age)
print(f1.email)
f2=Friend(name='xiaozhang',email='xiaozhang@sina.com',age=30)
print(f2)
 
name,age,email=f2
print(name,age,email)

Copy after login

Similar to tuple, its properties are also immutable:

>>> big_yellow.age += 1
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: can't set attribute
Copy after login

Can be easily converted into OrderedDict:

>>> big_yellow._asdict()
OrderedDict([('name', 'big_yellow'), ('age', 3), ('type', 'dog')])
Copy after login

When the method returns multiple values, it is actually better to return the result of namedtuple, so that the logic of the program will be clearer and easier to maintain:

>>> from collections import namedtuple
>>> def get_name():
...   name = namedtuple("name", ["first", "middle", "last"])
...   return name("John", "You know nothing", "Snow")
...
>>> name = get_name()
>>> print name.first, name.middle, name.last
John You know nothing Snow
Copy after login

Compared with tuple and dictionary, namedtuple is slightly more comprehensive: intuitive and easy to use. It is recommended that you use namedtuple when appropriate.

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
Popular Tutorials
More>
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!