Supongo que estás preocupado por la velocidad de iteración. La iteración sería un tiempo de orden-n O (n).
En AppleScript, posiblemente puede usar un registro de registros en lugar de una lista de registros, pero creo que entonces la clase de la clave tendría que ser un identificador, no un entero como en su ejemplo.
Aquí hay un enlace a alguien con una pregunta similar:
Emulando matrices asociativas en AppleScript
La respuesta de Lauri Ranta es usar la herramienta de línea de comandos llamada "awk".
La solución con la que jugué fue hacer una aplicación de fondo sin rostro que sería lo que se denomina un "Agente" al que AppleScript podría recurrir para utilizar sus estructuras de datos, como una matriz asociativa (también conocida como diccionario o Mapping). )
No terminé mi solución. Es solo una idea, pero podrías usar la respuesta de Lauri, ella generalmente sabe de lo que está hablando.
Como sé un poco de Pyton, y como Pyton viene con OS X, preinstalado en la carpeta del sistema, consideraría usar Python por mi cuenta.
Lo intenté nuevamente en "AppleScript puro" con el siguiente código con el que no estoy muy contento:
set theRecords to {fooKey:{key:"fooKey", value:"fooValue"}, barKey:{key:"barKey", value:"barValue"}}
try
set theRecord to get barKey of theRecords
display dialog (key of theRecord & ":" & value of theRecord)
on error errorMessage number errorNumber
if errorNumber is not equal to -128 then
display dialog "No match"
end if
end try
Puedes mezclar shell script y AppleScripts:
-- in AppleScript, you can call a shell script
do shell script "<enter your shell script here>"
O, puede llamar a un AppleScript desde un script de shell con la herramienta de línea de comandos llamada "osascript".