| You are here: Inicio > Inmersión en Python > Tipos de dato nativos | << >> | ||||
Inmersión en PythonPython de novato a experto |
|||||
Volveremos a su primer programa en Python en un minuto. Pero antes, se impone una pequeña digresión porque necesita saber cosas sobre los diccionarios, las tuplas y las listas (¡oh, dios!). Si es un hacker de Perl, probablemente pueda saltarse los comentarios sobre diccionarios y listas, pero debería prestar atención a las tuplas.
Uno de los tipos incorporados de Python es el diccionario, que define relaciones uno a uno entre claves y valores.
| Un diccionario en Python es como un hash en Perl. En Perl, las variables que almacenan hashes siempre empiezan con un carácter %. En Python las variables se pueden llamar de cualquier manera, y Python sabe su tipo internamente. | |
| Un diccionario en Python es como una instancia de la clase Hashtable de Java. | |
| Un diccionario en Python es como una instancia del objeto Scripting.Dictionary de Visual Basic. | |
>>> d = {"server":"mpilgrim", "database":"master"}>>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["server"]
'mpilgrim' >>> d["database"]
'master' >>> d["mpilgrim"]
Traceback (innermost last): File "<interactive input>", line 1, in ? KeyError: mpilgrim
>>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["database"] = "pubs">>> d {'server': 'mpilgrim', 'database': 'pubs'} >>> d["uid"] = "sa"
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
Advierta que el nuevo elemento (clave 'uid', valor 'sa') aparece en el medio. En realidad es sólo coincidencia que los elementos apareciesen en orden en el primer ejemplo; también es coincidencia que ahora aparezcan en desorden.
| Los diccionarios no tienen concepto de orden entre sus elementos. Es incorrecto decir que los elementos están “desordenados”, ya que simplemente no tienen orden. Esto es una distinción importante que le irritará cuando intente acceder a los elementos de un diccionario en un orden específico y repetible (por ejemplo, en orden alfabético por clave). Hay maneras de hacer esto, pero no vienen de serie en el diccionario. | |
Cuando trabaje con diccionarios, ha de tener en cuenta que las claves diferencian entre mayúsculas y minúsculas.[1]
>>> d = {} >>> d["clave"] = "valor" >>> d["clave"] = "otro valor">>> d {'clave': 'otro valor'} >>> d["Clave"] = "tercer valor"
>>> d {'Clave': 'tercer valor', 'clave': 'otro valor'}
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'} >>> d["retrycount"] = 3>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d[42] = "douglas"
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3} >>> del d[42]>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d.clear()
>>> d {}
[1] N. del T.: En inglés se dice que es case sensitive, que en castellano se traduce como sensible a la caja. "Caja", en el ámbito de la tipografía, se usa tradicionalmente para definir si una letra es mayúscula (caja alta) o minúscula (caja baja), en referencia al lugar en que se almacenaban los tipos móviles en las imprentas antiguas. En el resto del libro diré simplemente que se "distinguen las mayúsculas" (o no)
<< Prueba de módulos |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
Presentación de las listas >> |