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