Namedtuple

Namedtuple in Python

Python supports a type of container like dictionaries called namedtuples() present in module, collections. Like dictionaries they contain keys that are hashed to a particular value. But on contrary, it supports both access from key value and iteration, the functionality that dictionaries lack.

Operations on namedtuple()

Access Operations

  1. Access by index : The attribute values of namedtuple() are ordered and can be accessed using the index number unlike dictionaries which are not accessible by index.

  2. Access by keyname : Access by keyname is also allowed as in dictionaries.

  3. using getattr() :- This is yet another way to access the value by giving namedtuple and key value as its argument.

# Python code to demonstrate namedtuple() and
# Access by name, index and getattr()

# importing "collections" for namedtuple()
import collections

# Declaring namedtuple() 
Student = collections.namedtuple('Student',['name','age','DOB']) 

# Adding values
S = Student('Nandini','19','2541997')

# Access using index
print("The Student age using index is : ",end ="")
print(S[1])

# Access using name
print("The Student name using keyname is : ",end ="")
print(S.name)

# Access using getattr()
print("The Student DOB using getattr() is : ",end ="")
print(getattr(S,'DOB'))

Output:

Conversion Operations

  1. _make() :- This function is used to return a namedtuple() from the iterable passed as argument.

  2. _asdict() :- This function returns the OrdereDict() as constructed from the mapped values of namedtuple().

  3. using “**” (double star) operator :- This function is used to convert a dictionary into the namedtuple().

Output :

Additional Operations

  1. _fields :- This function is used to return all the keynames of the namespace declared.

  2. _replace() :- This function is used to change the values mapped with the passed keyname.

Output:

References

https://www.geeksforgeeks.org/namedtuple-in-python/

Last updated