Usando namedtuple en python

Usando namedtuple en python
Python viene con un módulo incorporado llamado colecciones, que proporciona varias clases y funciones como alternativa a las estructuras de datos incorporadas de Python, como dict, list, set y tuple.

Este tutorial de Python discutirá a Namedtuple, una de las funciones de fábrica del módulo de colecciones. Pasaremos por todos los conceptos importantes de Python Namedtuple con ejemplos y sintaxis.

Lo que se llama tuple en python?

Namedtuple es una función del módulo de colecciones de python, una extensión del contenedor de datos de tuple de Python que nos permite acceder a elementos en una tupla utilizando nombres o etiquetas. Podemos definir una nueva clase de tuple importando NamedTuple desde el módulo de colecciones de Python y usar la función de fábrica de NameTuple (). En resumen, una tupla nombrada es una combinación de Tuple de Python y Tipo de datos DICT.

Python Namedtuple Sintaxis

de colecciones importar namedtuple
tuple_name = namedTuple (typename, field_names, *, rename = false, defaults = none, module = none)

Entre los 6 atributos de namedTuple (), solo dos son obligatorios, escribe un nombre y Fields_Name, El resto es opcional.

El escribe un nombre representa el nombre de la subclase de tupla, y se usa para crear objetos tipo tupla.

El Feild_names El atributo representa el nombre de la etiqueta para los elementos de tupla. Puede ser una cadena separada por espacios "Fname lname Dept salary" o una lista de cadena ['fname', 'lname', 'departamento', 'salario'].

Declarando a un llamado en Python

Ahora, comencemos por declarar un tituple llamado.

de colecciones importar namedtuple
#Declare el the namedtuple
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
#Add valores a la tupla nombrada
e1 = Empleado ('Sam', 'Smith', 'Marketing', 20000)
#Valor de acceso con etiqueta
Imprimir ("El nombre del empleado E1 es:", E1.fname + "" + E1.Lname)
#valor de acceso utilizando el valor del índice
Imprimir ("El departamento del empleado E1 es:", E1 [2])

Producción:

El nombre del empleado E1 es: Sam Smith
El departamento del empleado E1 es: marketing

Acceder a elementos desde el the NamedTuple en Python

Hay tres formas de acceder a elementos de una tupla nombrada usando:

  • índice (como una tupla)
  • Nombre/nombre de la etiqueta de campo (como un diccionario)
  • método getattr ()
de colecciones importar namedtuple
#Declare el the namedtuple:
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
#Agradecer valores a la tupla nombrada:
e1 = Empleado ('Sam', 'Smith', 'Marketing', 20000)
#Valor de acceso utilizando el valor de índice:
Imprimir ("Empleado (Uso del índice)", E1 [0], E1 [1], E1 [2], E1 [3])
#Valor de acceso con etiqueta:
Imprimir ("Empleado (usando la etiqueta)", E1.fname, E1.Lname, E1.Departamento, E1.salario)
#Valor de acceso usando getATTR ()::
print ("empleado (usando getAttr ())", getAttr (e1, 'fname'), getAttr (e1, 'lname'), getAttr (e1, 'departamento'), getattr (e1, 'salario')))))

Producción:

Empleado (usando el índice) Sam Smith Marketing 20000
Empleado (usando la etiqueta) Sam Smith Marketing 20000
Empleado (usando getattr ()) Sam Smith Marketing 20000

Trabajando con Python namedtuple

Python NamedTupples es inmutable
Como una tupla normal, las ttuple de nombre también son inmutables. Arrojará un error si asignamos un nuevo valor a un número o etiqueta de índice existente.

Ejemplo:

de colecciones importar namedtuple
#Declare el the namedtuple
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
#Add valores a la tupla nombrada
e1 = Empleado ('Sam', 'Smith', 'Marketing', 20000)
E1.fname = "John" #Error

Producción:

AttributeRor: no se puede establecer atributo

Convertir una pitón llamada Tuple en un diccionario de Python
A NameTuple se trata como un diccionario porque cada elemento de la tupla nombrado está asociado con una etiqueta como en un diccionario de Python.

Para convertir un NameTuple en un diccionario, podemos usar el .Método _asdict ().

Ejemplo:

De colecciones importar namedtuple
#Declare el the namedtuple
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
#Add valores a la tupla nombrada
e1 = Empleado ('Sam', 'Smith', 'Marketing', 20000)
Imprimir (E1._asdict ())

Producción:

'fname': 'sam', 'lname': 'smith', 'departamento': 'marketing', 'salario': 20000

Crea un NameTuple de Python ITerable Object
Para convertir un objeto iterable como tuple, lista, conjunto y diccionario en namedtuple, podemos usar el thenedtuple .Método _make ().

Ejemplo:

De colecciones importar namedtuple
#Declare el the namedtuple
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
#lista
e1 = ['rahul', 'sharma', 'marketing', 20000]
#tuple
e2 = ('ravi', 'kumar', 'marketing', 20000)
Impresión (empleado._Make (E1))
Impresión (empleado._Make (E2))

Producción:

Empleado (fname = 'rahul', lname = "sharma", dept = "marketing", salario = 20000)
Empleado (fname = 'ravi', lname = "kumar", departamento = "marketing", salario = 20000)

Convertir un diccionario de Python en la tupla llamada
Hay dos formas de convertir un diccionario de Python en un tituple named.

Podemos usar el ** Operador o Valores de diccionario () método.

Ejemplo:

De colecciones importar namedtuple
#Declare el the namedtuple
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
#diccionario
e1 = 'fname': 'sonia', 'lname': 'jenner', 'departamento': 'gestión', 'salario': 20000
#using ** operador
Imprimir (Empleado (** E1))
#usando .Método _make ()
Impresión (empleado._Make (E1.valores()))

Producción:

Empleado (fname = 'sonia', lname = "jenner", departamento = "gestión", salario = 20000)
Empleado (fname = 'sonia', lname = "jenner", departamento = "gestión", salario = 20000)

Revise todos los campos de Python llamado Tuple
Usando la propiedad _fields, podemos todos los campos de la tupla nombrada

Ejemplo:

De colecciones importar namedtuple
#Declare el the namedtuple
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
Impresión (empleado._campos)

Producción:

('fname', 'lname', 'departamento', 'salario')

Cómo cambiar el valor de NamedTuple
Un namedtuple es inmutable, y no podemos cambiar sus valores de atributo después de la declaración. Sin embargo, el namedtuple proporciona el .Método reemplazar () que devuelve una copia de NamedTuple con un valor de atributo cambiado.

Ejemplo:

De colecciones importar namedtuple
#Declare el the namedtuple
Empleado = namedTuple ("empleado", ['fname', 'lname', 'departamento', 'salario'])
#Add valores a la tupla nombrada
e1 = Empleado ('Sam', 'Smith', 'Marketing', 20000)
Imprimir (E1._replace (fname = 'John'))

Producción:

Empleado (fname = 'John', lname = "Smith", Dept = "Marketing", Salario = 20000)

Conclusión

Para concluir este tutorial de Python, aprendimos lo que se llama en Python y cómo declararlo. Namedtuple es una combinación de Python Tuple y Python Dictionary en el que se accede a los elementos con números de etiqueta (clave) o de índice. Podemos usar el contenedor de tupla de Python normal, y son útiles cuando queremos realizar el hashing usando solo tuple.