44 lines
1.4 KiB
Org Mode
44 lines
1.4 KiB
Org Mode
:PROPERTIES:
|
|
:ID: 234f4590-b484-4286-9dbd-49612f4657be
|
|
:mtime: 20220522171851
|
|
:ctime: 20220522151020
|
|
:END:
|
|
#+title: NamedTuple
|
|
|
|
* Introduction
|
|
Les /tuples/ sont des objets /immutables/ contenant des données /mutable/ ou non, homogènes ou non. Le contenu d'un
|
|
/tuple/ est accessible depuis son index (cf. tableau). Le /namedtuple/ est un /tuple/ pour lequel le contenu est aussi
|
|
accessible depuis un nom, rendant le code plus lisible.
|
|
|
|
Les /namedtuple/ prennent la même quantité de RAM que les /tuple/.
|
|
|
|
* Howto
|
|
Le module /collections/ propose une implémentation de /namedtuple/ :
|
|
#+BEGIN_SRC python :results output
|
|
collections.namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)
|
|
#+END_SRC
|
|
|
|
#+BEGIN_SRC python :results output
|
|
from collections import namedtuple
|
|
from sys import getsizeof
|
|
|
|
Point = namedtuple('Point', ['x', 'y'])
|
|
p1 = Point(10, 20)
|
|
|
|
print(f'{p1=}')
|
|
print(f'{p1.x == p1[0] = }')
|
|
print(f'{p1.y == p1[1] = }')
|
|
|
|
print(f'{getsizeof(p1) == getsizeof((10, 20)) = }')
|
|
#+END_SRC
|
|
|
|
#+RESULTS:
|
|
: p1=Point(x=10, y=20)
|
|
: p1.x == p1[0] = True
|
|
: p1.y == p1[1] = True
|
|
: getsizeof(p1) == getsizeof((10, 20)) = True
|
|
|
|
* Références
|
|
* [[https://pythonsimplified.com/what-are-namedtuples-in-python/][What are the named tuples in Python - Python Simplified]]
|
|
* [[https://docs.python.org/3/library/collections.html#collections.namedtuple][Namedtuple - Python collections module]]
|