Python - saber posición de un valor

 
Vista:

saber posición de un valor

Publicado por mavbnet (1 intervención) el 25/02/2018 11:19:17
Hola,

Tengo la siguiente lista

[
1
{'id': '1', 'nombre': 'pepe', 'edad': '25'}, {'id': '2', 'nombre': 'ramon', 'edad': '45'}, {'id': '2', 'nombre': 'laura', 'edad': '33'}]

Lo que quiero extraer es la posición en la lista que ocupa por ejemplo 'ramon'.

Estoy usando:

1
2
3
4
import numpy as np
a = np.array(funds_data)
arr_index = np.where(a == 'ramon')
print(arr_index)

el resultado que muestra es

1
(array([ ], dtype=int32),)

yo lo que quiero mostrar es la posición en la que está en la lista y su edad...

¿Me podéis ayudar? Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

saber posición de un valor

Publicado por tincopasan (1082 intervenciones) el 26/02/2018 03:16:37
la verdad no tengo idea porque usas numpy(es para funciones matemáticas y ahora no las usas)
me parece que una forma simple para que lo entiendas fácil sería:
1
2
3
4
5
6
7
8
import numpy as np
funds_data=[{'id': '1', 'nombre': 'pepe', 'edad': '25'}, {'id': '2', 'nombre': 'ramon', 'edad': '45'}, {'id': '2', 'nombre': 'laura', 'edad': '33'}]
indice=0
a= np.array(funds_data)
for elemento in a:
    if elemento["nombre"]== "ramon":
        print("se encuentra en el indice: {} y la edad es {}".format(indice,elemento["edad"]))
    indice+=1
los indices comienzan en 0 si quisieras que coincida con el "id", podrías poner indice inicial en 1 o simplemente mostrar el valor de la clave "id", y por supuesto se puede obviar numpy y usar solo la lista
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

saber posición de un valor

Publicado por kip (257 intervenciones) el 28/02/2018 01:11:10
Hola, puedes hacerlo sin numpy algo asi:

1
2
3
4
5
6
7
8
9
funds_data = [
    {'id': '1', 'nombre': 'pepe', 'edad': '25'},
    {'id': '2', 'nombre': 'ramon', 'edad': '45'},
    {'id': '2', 'nombre': 'laura', 'edad': '33'}
]
 
positions = [(i,d) for i,d in enumerate(funds_data) if d['nombre'] == 'pepe']
 
print(positions)

O asi tambien:

1
2
3
4
5
6
7
8
9
10
11
12
13
funds_data = [
    {'id': '1', 'nombre': 'pepe', 'edad': '25'},
    {'id': '2', 'nombre': 'ramon', 'edad': '45'},
    {'id': '2', 'nombre': 'laura', 'edad': '33'}
]
 
positions = list(filter(
      lambda d: d[1]['nombre'] == 'pepe',
      enumerate(funds_data)
  )
)
 
print(positions)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar