[ Foro de Python ]

Saber el contenido de un objeto mediante el ID()

30-Dec-2021 20:41
Roberto Daniel Virgili
4 Respuestas

--------------------------------------------------------------------------------------------------
lista = [1, 30, 18, 100, 121, 15, 180, 221, 39, 44]
a = id(lista[7])
print(a)

b = id(221)
print(b)
--------------------------------------------------------------------------------------------------
Hola gente ¿como están?, voy a la pregunta ¿hay alguna manera de saber el contenido
de la memoria utilizando el identificador que regresa id()?
En concreto necesito conocer el índice del numero 221 que en este caso es 7.-
Es todo, luego les cuento que quiero hacer con esto.-
Slds. Daniel.


31-Dec-2021 17:40
Invitado (felipe)


hola roberto

para saber el indice de un elemento de la
lista puedes usar el metodo "index", para
saber cuantas veces esta en la lista usa
el metodo "count"

id es para identificar un objeto

podrías hacer tal que:
   https://www.online-ide.com/qCbUnNmVFX

saludos ;-)


04-Jan-2022 19:09
Nacho Cabanes (+84)

No acabo de entender. ¿Para qué quieres saber la posición de memoria? Es un dato inútil para ti, que usa internamente el compilador y que no puedes (ni debes) modificar en lenguajes modernos.

Si lo que quieres es simplemente saber en qué posición de la lista está el 221 (ese "7" de que está en la octava posición), puedes usar el método ".index" de una lista:


lista = [1, 30, 18, 100, 121, 15, 180, 221, 39, 44]
b = lista.index(221)
print(b)


 


05-Jan-2022 15:21
Roberto Daniel Virgili

Gracias Felipe, todo suma para mi aprendizaje, muchas gracias y que tengas un bello Miércoles.-


05-Jan-2022 15:28
Roberto Daniel Virgili

Hola Nacho, buen día, te cuento la historia desde el comienzo, estaba aprendiendo/analizando la búsqueda binaria, que de paso me parece de una inteligencia superior a quien se le antojo ese método, excelente,
y hete aquí que me pregunte ¿Por qué no intentar mejorarlo? y me puse a practicar con esto
ya que tiene la ventaja de no tener que ordenar la lista que en caso de la búsqueda binaria es
imprescindible, pero bueno me topo con el inconveniente que con tener “la etiqueta/identificador”
de la variable parece que no basta para obtener los datos/valores.-
Te cuento lo de índex, lo probé con 1.000.000 de números en una lista y “al instante” me muestra el resul-tado:
Índice = 999998  -->  numero = 999999
Porque siendo esto tan veloz se lee de tantos métodos de búsqueda ¿acaso los otros lenguajes no lo
disponen?, no entiendo.-
Bueno, en definitiva me quedo con la duda, no puedo creer que teniendo la dirección de memoria de una
variable no puedo acceder a el valor contenido en ella.-






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)