Python: reemplace el valor por el valor del índice Kth en la lista del diccionario

Dada una lista de diccionario, la tarea es escribir un programa de Python para reemplazar el valor de una clave particular con el k-ésimo índice de valor si el valor de la clave es una lista. 

Ejemplos:

Entrada : test_list = [{‘gfg’: [5, 7, 9, 1], ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfg’: [7, 3, 9, 1]}], K = 2, clave = “gfg” 
Salida : [{‘gfg’: 9, ‘is’: 8 , ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfg’: 9}] 
Explicación : gfg se asigna con 9 que es el segundo índice en la lista.
 

Entrada : test_list = [{‘gfg’: [5, 7, 9, 1], ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}], K = 2, clave = “gfg” 
Salida : [{‘gfg’: 9, ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘ geeks’: 9}] 
Explicación : a gfg se le asigna 9, que es el segundo índice de la lista. 

Método #1: Usar loop + isinstance()

En esto, usamos isinstance() para verificar el tipo de lista de valores y el bucle se usa para iterar a través de los diccionarios.

Python3

# Python3 code to demonstrate working of
# Replace value by Kth index value in Dictionary List
# Using loop + isinstance()
  
# initializing list
test_list = [{'gfg': [5, 7, 9, 1], 'is': 8, 'good': 10},
             {'gfg': 1, 'for': 10, 'geeks': 9},
             {'love': 3, 'gfg': [7, 3, 9, 1]}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# initializing Key
key = "gfg"
  
for sub in test_list:
  
    # using isinstance() to check for list
    if isinstance(sub[key], list):
        sub[key] = sub[key][K]
  
# printing result
print("The Modified Dictionaries : " + str(test_list))

 Producción:

La lista original es: [{‘gfg’: [5, 7, 9, 1], ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’ : 9}, {‘love’: 3, ‘gfg’: [7, 3, 9, 1]}]
Los diccionarios modificados: [{‘gfg’: 9, ‘is’: 8, ‘good’: 10} , {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfg’: 9}]

Método #2: Usando la comprensión del diccionario + isinstance()

En esto, reconstruimos diccionarios con valores de diccionario modificados usando isinstance() y la comprensión del diccionario se usa para formar diccionarios intermedios.

Python3

# Python3 code to demonstrate working of
# Replace value by Kth index value in Dictionary List
# Using dictionary comprehension + isinstance()
  
# initializing list
test_list = [{'gfg': [5, 7, 9, 1], 'is': 8, 'good': 10},
             {'gfg': 1, 'for': 10, 'geeks': 9},
             {'love': 3, 'gfg': [7, 3, 9, 1]}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# initializing Key
key = "gfg"
  
# intermediate Dictionaries constructed using dictionary comprehension
res = [{newkey: (val[K] if isinstance(val, list) and newkey == key else val)
        for newkey, val in sub.items()} for sub in test_list]
  
# printing result
print("The Modified Dictionaries : " + str(res))

Producción:

La lista original es: [{‘gfg’: [5, 7, 9, 1], ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’ : 9}, {‘love’: 3, ‘gfg’: [7, 3, 9, 1]}]
Los diccionarios modificados: [{‘gfg’: 9, ‘is’: 8, ‘good’: 10} , {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfg’: 9}]

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 *