Me preguntaba si hay una manera de obtener un valor en un índice específico. Digamos que tengo una clave con múltiples valores asociados. Pero en mi diccionario tengo varias claves, cada clave con múltiples valores. Quiero iterar a través de las claves y luego cada valor respectivo asociado con esa clave. Quiero poder extraer el valor en el primer índice y restarlo del valor en el segundo índice.
d= {108572791: [200356.77, 200358], 108577388: [19168.7, 19169]}
output for key 108572791 would be -1.33
output for key 108577388 would be -.03
Intenté leer sobre dict y cómo funciona, aparentemente no se puede indexar. Solo quería saber si hay una manera de evitar eso.
for key, values in total_iteritems():
for value in values:
value[0]-value[1]:
3 respuestas
Editar:
Como la pregunta es muy diferente ahora, abordaré el nuevo tema:
d= {108572791: [200356.77, 200358], 108577388: [19168.7, 19169]}
for i in d:
print("Output for key ",str(i), "would be ",(d[i][1]-d[i][0]))
Salida:
Output for key 108572791 would be 1.2300000000104774
Output for key 108577388 would be 0.2999999999992724
Respuesta original
Si. Cuando tiene un dict
que contiene una lista como value
si desea obtener un valor específico, entonces necesita abordar el índice en la lista. Un ejemplo es:
a = {'Name':['John','Max','Robert']}
Esto significa que:
print(a['Name'])
Salida:
['John','Max','Robert']
Como ['Nombre'] es una lista:
for i in range(len(a['Name'])):
print(a['Name'][i]
Salida:
John #(Because it's the index 0)
Max #(Index = 1)
Robert #(Index = 2)
Si desea un valor específico (por ejemplo, 'Max' que es index = 1)
print(a['Name'][1]
Salida:
Max
Depende de cuántos valores en clave obvio, pero esto funciona:
for x in d:
print(x)
print(d[x][0]-d[x][1])
Puede usar la lista de tuplas si desea usar la indexación.
d = [(108572791, [200356.77, 200358]), (108577388, [19168.7, 19169)]
for tuple in my_list:
print(tuple[0])
for value in tuple[1]:
print(value)