Python – Lista de registros anidados de listas

A veces, mientras trabajamos con Python Data, podemos tener problemas en los que tenemos datos entrantes en diferentes formatos. En esto, podemos recibir datos como clave y valor en un diccionario separado y requerimos hacer valores como lista de registros con una nueva clave. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso zip()del bucle +
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En este, realizamos el emparejamiento mediante zip y la intervención manual de adición de clave se realiza de forma bruta.

# Python3 code to demonstrate working of 
# Nested Records List from Lists
# Using zip() + loop
  
# initializing lists
test_list1 = ['gfg', 'best']
test_list2 = [[1, 2], [3, 4]]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# initializing add_key 
add_key = 'id'
  
# Nested Records List from Lists
# Using zip() + loop
res = dict()
for key, val in zip(test_list1, test_list2):
    res[key]=[{add_key : idx} for idx in val]
  
# printing result 
print("The constructed dictionary is : " + str(res)) 
Producción :

La lista original 1 es: [‘gfg’, ‘best’]
La lista original 2 es: [[1, 2], [3, 4]]
El diccionario construido es: {‘gfg’: [{‘id’: 1}, {‘id’: 2}], ‘mejor’: [{‘id’: 3}, {‘id’: 4}]}

Método #2: Usar la comprensión del diccionario +zip()
Esta es otra forma más de realizar esta tarea. Esto es similar al método anterior, solo una alternativa de una sola línea de arriba.

# Python3 code to demonstrate working of 
# Nested Records List from Lists
# Using dictionary comprehension + zip()
  
# initializing lists
test_list1 = ['gfg', 'best']
test_list2 = [[1, 2], [3, 4]]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# initializing add_key 
add_key = 'id'
  
# Nested Records List from Lists
# Using dictionary comprehension + zip()
res = {key : [{add_key : idx} for idx in val] 
       for key, val in zip(test_list1, test_list2)}
  
# printing result 
print("The constructed dictionary is : " + str(res)) 
Producción :

La lista original 1 es: [‘gfg’, ‘best’]
La lista original 2 es: [[1, 2], [3, 4]]
El diccionario construido es: {‘gfg’: [{‘id’: 1}, {‘id’: 2}], ‘mejor’: [{‘id’: 3}, {‘id’: 4}]}

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *