iterando una clave en una matriz asociativa multidimensional python

Estoy creando dinámicamente una matriz asociativa bidimensional (¿diccionario?)

Estoy tratando de hacer un bucle a través de sus claves, mientras mantengo uno de los índices constantes, así que, por ejemplo, todos los valores asociados a “clave” con “john” en su primer corchete:

myhash['john']['smith'] = "address 1" myhash['john']['doe'] = "address 2" 

¿Cómo puedo obtener todas las claves del hash para cada “clave” manteniendo el primer índice como “John” (quiero todos los apellidos)?

Gracias

myhash['john'] es en sí mismo un diccionario. (No está creando un diccionario multidimensional, sino un diccionario de diccionarios).

Así…

 last_names = list(myhash['john']) 

o si quieres hacer algo en un bucle …

 for last_name in myhash['john']: # do something with last_name 

Ya lo mencioné al responder a tu pregunta anterior : parece que estás tratando de reinventar la rueda cuadrada. Dada su necesidad declarada, es probable que también desee realizar una búsqueda en la parte del apellido, y luego volver al paso 1 (examinar el conjunto de datos completo probando secuencialmente la tecla “2do nivel”) o mantener un “apellido” índice que almacena el apellido: [firstname1, firstname2, firstnameN] que reduce (pero no suprime) la búsqueda secuencial y debe actualizarse en cualquier inserción o eliminación.

IOW, está reimplementando la mayor parte de lo que puede hacer una base de datos relacional, y es muy poco probable que su implementación sea más rápida o más robusta que incluso la RDB más barata. Para el registro, hay motores RDB muy ligeros, basados ​​en archivos (sin necesidad de un proceso de servidor, etc.) como SQLite3 (los enlaces de Python están en la stdlib, por lo que ni siquiera tiene que instalar nada especial).

 >>> for k in myhash['john']: ... print(k) ... smith doe