Documente Academic
Documente Profesional
Documente Cultură
Diccionarioenpython,conejemplos
Diccionarioenpython,conejemplos
El
proyecto
de
este
post
lo
(https://github.com/jarroba/Dictionary_Python_jarroba).
puedes
descargar
pulsando
AQUI
LosdiccionariosenPythonsonuntipodeestructurasdedatosquepermiteguardarunconjunto
noordenadodeparesclavevalor,siendolasclavesnicasdentrodeunmismodiccionario(esdecirque
nopuedenexistirdoselementosconunamismaclave).Losdiccionariossonestructurasdedatosmuy
extendidosenotroslenguajesdeprogramacin,aunqueenotroslenguajescomojavaselesdenominan
condistintosnombrescomo"Map"(verentrada"MapenJava,conejemplos (http://jarroba.com/mapen
javaconejemplos/)").
Veamos a continuacin un ejemplo de como declarariamos un diccionario en Python en cuyos
elementostenemoslosjugadoresdelaseleccinEspaola,siendolaclavesudorsal(clavenica)yel
valorsunombre.
#Definolavarible'futbolistas'comoundiccionario.Noesnecesariodeclararquetip
odedatoes
futbolistas=dict()
futbolistas={
1:"Casillas",15:"Ramos",
3:"Pique",5:"Puyol",
11:"Capdevila",14:"XabiAlonso",
16:"Busquets",8:"XaviHernandez",
18:"Pedrito",6:"Iniesta",
7:"Villa"
}
http://jarroba.com/diccionariopythonejemplos/
1/14
24/10/2016
Diccionarioenpython,conejemplos
Comovemoseldiccionariodedeclaraentreloscaracteres'{}'ycadaunodeloselementoslos
separamosporcomas(',').Cadaelementolodefinimosconsuparclave:valor,pudiendoderlaclaveyel
valordecualquiertipodedato(int,float,chr,str,bool,object).
Vamosacontinuacinarecorrereldiccionario(conunforeach)yaimprimirsusparesclave:valor
(msadelanteveremostodoslosmtodosdelosdiccionarios):
#Recorrerundiccionario,imprimiendosuclavevalor
fork,vinfutbolistas.items():
print"%s>%s"%(k,v)
Comoresultadodeestecdigotenemoslosiguiente:
1>Casillas
3>Pique
5>Puyol
6>Iniesta
7>Villa
8>XaviHernandez
11>Capdevila
14>XabiAlonso
15>Ramos
16>Busquets
18>Pedrito
Vamosapasarahoraamostrarlosmtodos(ofunciones)paratrabajarconlosdiccionariosen
Python,yposteriormenteaponerejemplosdelfuncionamientodeestosmtodos:
http://jarroba.com/diccionariopythonejemplos/
2/14
24/10/2016
Diccionarioenpython,conejemplos
#Declaracindeundiccionario
diccionario=dict()
#Devuelveelnumerodeelementosquetieneeldiccionario
len(dict)
#Comparaelnmerodeelementosdistintosquetienenlosdos
cmp(dict1,dict2)
#Devuelveunalistaconlasclavesdeldiccionario
dict.keys()
#Devuelveunalistaconlosvaloresdeldiccionario
dict.values()
#Devuelveelvalordelelementoconclavekey.Sinodevuelvedefault
dict.get(key,default=None)
#Insertaunelementoeneldiccionarioclave:valor.Silaclaveexistenoloinserta
dict.setdefault(key,default=None)
#Insertamosunelementoeneldiccionarioconsuclave:valor
dict['key']='value'
#Eliminamoselelementodeldiccionarioconclavekey
dict.pop('key',None)
#Devulevelacopiadeundiccionariodict2=dict.copy()
dict.copy()
#Eliminatodosloselementosdeundiccionario
dict.clear()
#Creaunnuevodiccionarioponiendocomoclaveslasquehayenlalistaylosvalores
pordefectosiselespasa
dict.fromkeys(list,defaultValue)
#Devuelvetruesiexistelaclave.Sinodevuelvefalse
dict.has_key(key)
#devuelveunlistadetuplasformadasporlosparesclave:valor
dict.items()
#Aadeloselementosdeundiccionarioaotro
dict.update(dict2)
Unavezvistoslosmtodos(ofunciones)quenospermitentrabajarconlosdiccionarios,vamosa
mostrar como trabajar con estos mtodos. Para ello nos vamos a utilizar el diccionario 'futbolistas' que
hemos declarado al principio, en el que hemos guardado elementos futbolista te tienen como clave su
dorsal(esdecirun'int')ycomovalorsunombre(un'string').
http://jarroba.com/diccionariopythonejemplos/
3/14
24/10/2016
Diccionarioenpython,conejemplos
Enprimerlugarvamosamostrarcomocontarloselementosdeundiccionario,quelohacemosde
lasiguienteforma
#Vemoscuantoselementostienenuestrodiccionario
numElem=len(futbolistas)
print"\nNumerodeelementosdeldiccionariolen(futbolistas)=%i"%numElem
Teniendocomosalidadeesefragmentodecdigo:
Numerodeelementosdeldiccionariolen(futbolistas)=11
Con el mtodo keys() obtenemos una lista con las claves de los diccionarios y de la misma
forma con el mtodo values() obtenemos una lista con los valores del diccionario. En el siguiente
fragmentodecdigovemoscomoobtenerestaslistas:
Usodecookies
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
(http://jarroba.com/faq/)
#Imprimimosunalistaconlasclavesdeldiccionario
ACEPTAR
keys=futbolistas.keys();
print"\nClavesdeldiccionariofutbolistas.keys():\n%s"%keys
#Imprimimosenunalistalosvaloresdeldiccionario
values=futbolistas.values()
print"\nValoresdeldiccionariofutbolistas.values():\n%s"%values
Comosalidadeestefragmentodecdigotenemoslosiguiente:
Clavesdeldiccionariofutbolistas.keys():
[1,3,5,6,7,8,11,14,15,16,18]
Valoresdeldiccionariofutbolistas.values():
['Casillas','Pique','Puyol','Iniesta','Villa','XaviHernandez','Capdevila','XabiAlonso','Ramos'
Conelmtodoget(key),pasndolecomoparmetrounaclave,obtenemoselvalordelelemento
quetieneesaclave:
#Obtenemoselvalordeunelementodadasuclave
elem=futbolistas.get(6)
print"\nObtenemoselvalorcuyaclavees'6'futbolistas.get(6):%s"%elem
Comoresultado,obtenemoselnombredelfutbolistaconclave=6:
http://jarroba.com/diccionariopythonejemplos/
4/14
24/10/2016
Diccionarioenpython,conejemplos
Obtenemoselvalorcuyaclavees'6'futbolistas.get(6):Iniesta
#Aadimosunnuevoelementoalalista
futbolistas[22]='Navas'
print"\nDiccionariotrasaadirunelemento:futbolistas[22]='Navas'\n%s"%futbolis
tas
Comoresultado,tenemoseneldiccionariounelementoms:
Diccionariotrasaadirunelemento:futbolistas[22]='Navas'
Usodecookies
{1:'Casillas',3:'Pique',5:'Puyol',6:'Iniesta',7:'Villa',8:'XaviHernandez',10:'Cesc',11:'
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
(http://jarroba.com/faq/)
ACEPTAR
Lasegundaformadeinsertarunelementoesconelmtodosetdefault(key,default=valor)alque
selepasacomoparmetrosunclaveyunvalor.Estemtodotienelapeculiaridaddequesoloinsertael
elementoeneldiccionariosinoexisteunelementoconesaclave.Siexisteunelementoconesaclaveno
realizalainsercin:
#Insertamosunelementoenelarray.Silaclaveyaexistenoinsertaelelemento
elem2=futbolistas.setdefault(10,'Cesc')
print"\nInsertamosunelementoeneldiccionario.Silaclaveexistenoloinserta"\
"\nfutbolistas.setdefault(10,'Cesc'):%s"%elem2
Comoresultadoalfragmentodecdigoanteriortenemoslosiguiente:
Insertamosunelementoeneldiccionario.Silaclaveexistenoloinserta
futbolistas.setdefault(10,'Cesc'):Cesc
Elsiguientemtodoquevamosaverpop(key)nosborrardeldiccionarioaquelelementoque
tengacomoclave,laquelepasamoscomoparmetro.Porejemplovamosaborrarelelementoconclave
=22:
#Eliminamosunelementodeldiccionariodadasuclave
futbolistas.pop(22)
print"\nDiccionariotraseliminarunelemento:futbolistas.pop(22)\n%s"%futbolistas
http://jarroba.com/diccionariopythonejemplos/
5/14
24/10/2016
Diccionarioenpython,conejemplos
Comoresultadodeestefragmentodecdigo,podemosobservarqueefectivamenteharealizado
elborradodelelementoconclave=22:
Diccionariotraseliminarunelemento:futbolistas.pop(22)
{1:'Casillas',3:'Pique',5:'Puyol',6:'Iniesta',7:'Villa',8:'XaviHernandez',10:'Cesc',11:'
Parahacerunacopiadeundiccionario,seutilizaelmtodocopy():
#Hacemosunacopiadeldiccionario
futbolistasCopy=futbolistas.copy();
print"\nRealizamosunacopiadeldiccionariofutbolistasCopy=futbolistas.copy():\n%s"
%futbolistas
Usodecookies
Vamos a ver que como resultado, tenemos
un nuevo diccionario llamado futbolistasCopy que
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
contienelosmismoselementosqueeldiccionariofutbolistas:
denuestrapolticadecookies(http://jarroba.com/faq/)
(http://jarroba.com/faq/)
ACEPTAR
RealizamosunacopiadeldiccionariofutbolistasCopy=futbolistas.copy():
{1:'Casillas',3:'Pique',5:'Puyol',6:'Iniesta',7:'Villa',8:'XaviHernandez',10:'Cesc',11:'
Paraeliminarelcontenido(oloselementos)deundiccionarioutilizamoselmtodoclear():
#Eliminamosloselementosdeundiccionario
futbolistasCopy.clear()
print"\nEliminamosloselementosdeundiccionariofutbolistasCopy.clear():%s"%futbo
listasCopy
Vemoscomoconelfragmentodecdigoanteriornoseliminaelcontenidodeldiccionario,perono
eliminaeldiccionario:
EliminamosloselementosdeundiccionariofutbolistasCopy.clear():{}
http://jarroba.com/diccionariopythonejemplos/
6/14
24/10/2016
Diccionarioenpython,conejemplos
#Creamosundiccionarioapartirdeunalistaconlasclaves
keys=['nombre','apellidos','edad']
dictList=dict.fromkeys(keys,'nada')
print"\nCreamosundiccionarioapartirdeunalistadictList=dict.fromkeys(keys,'n
ada'):\n%s"%dictList
Comoresultado,noscreaundiccionariollamadodictList,conlasclavesquelepasamosenla
listayconelvalornadaquelepasamoscomoparmetro:
CreamosundiccionarioapartirdeunalistadictList=dict.fromkeys(keys,'nada'):
{'apellidos':'nada','nombre':'nada','edad':'nada'}
El mtodo que nos permite comprobar si existe o no una clave es el mtodo has_key(key).
Veamosunejemplo:
Usodecookies
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
#Comprobamossiexisteonounaclave
(http://jarroba.com/faq/)
exit2=futbolistas.has_key(2)
ACEPTAR
exit8=futbolistas.has_key(8)
print"\nComprobamossiexistenloselementos2y8\n\tfutbolistas.has_key(2)=%s"\
"\n\tfutbolistas.has_key(8)=%s"%(exit2,exit8)
Comoresultadodelacomprobacindeclavesanteriortenemoslosiguiente:
Comprobamossiexistenloselementos2y8
futbolistas.has_key(2)=False
futbolistas.has_key(8)=True
Otro mtodo muy util sobre todo para hacer un foreach del diccionario y obtener sus pares
clave:valor,eselmtodoitems()quedevuelveloselementosdelosdiccionariosentuplas,enlaqueen
cadaunadeellasestaenlaprimeraposicinlaclaveyenlasegundaelvalor.Veamosunejemplo:
#Devolvemosloselementosdeldiccionarioentuplas
tuplas=futbolistas.items()
print"\nPasamoseldiccionarioatuplasconclavevalor:tuplas=futbolistas.items()
\n%s"%tuplas
Como resultado vemos que efectivamente nos devuelve una lista de tuplas con los pares
clave:valor:
http://jarroba.com/diccionariopythonejemplos/
7/14
24/10/2016
Diccionarioenpython,conejemplos
Pasamoseldiccionarioatuplasconclavevalor:tuplas=futbolistas.items()
[(1,'Casillas'),(3,'Pique'),(5,'Puyol'),(6,'Iniesta'),(7,'Villa'),(8,'XaviHernandez'),(10,
Porltimovamosaverelmtodoupdate(dict)quenosvaapermitirunirloselementosdedos
diccionarios. Este mtodo inserta en el diccionario aquellos elementos del diccionario que se le pasa
comoparmetro,cuyasclavesnoestneneldiccionario.Veamoselsiguienteejemplo:
#Mergeamosdosdiccionarios
suplentes={
4:'Marchena',9:'Torres',12:'Valdes',
13:'Mata',17:'Arbeloa',19:'Llorente',
20:'JaviMartinez',21:'Silva',23:'Reina'
}
futbolistas.update(suplentes)
Usodecookies
print"\nAadimosloselementosdeundiccionarioaotrofutbolistas.update(suplentes):
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
\n%s"%futbolistas
(http://jarroba.com/faq/)
ACEPTAR
Como vemos en este ejemplo nos hemos creado un nuevo diccionario con los futbolistas
suplentes y lo hemos unido al diccionario futbolistas. De esta forma el diccionario futbolistas ya tiene
todoslosfutbolistas(titulares+suplentes)delaseleccinEspaolacampeonadelmundoenelao2010.
Comoresultadotenemoslosiguiente:
Aadimosloselementosdeundiccionarioaotrofutbolistas.update(suplentes):
{1:'Casillas',3:'Pique',4:'Marchena',5:'Puyol',6:'Iniesta',7:'Villa',8:'XaviHernandez',9:
Estos han sido los mtodos ms importantes para el manejo de diccionarios en python. A
continuacinmostramostodoelfragmentodelcdigoquehemosidodesgranandoenestetutorial:
http://jarroba.com/diccionariopythonejemplos/
8/14
24/10/2016
Diccionarioenpython,conejemplos
#*coding:utf8*
__author__='Richard'
#Definolavarible'futbolistas'comoundiccionario.Noesnecesariodeclararquetip
odedatoes
futbolistas=dict()
futbolistas={
1:"Casillas",15:"Ramos",
3:"Pique",5:"Puyol",
11:"Capdevila",14:"XabiAlonso",
16:"Busquets",8:"XaviHernandez",
18:"Pedrito",6:"Iniesta",
7:"Villa"
}
#Recorrerundiccionario,imprimiendosuclavevalor
fork,vinfutbolistas.items():
Usodecookies
print"%s>%s"%(k,v)
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
#Vemoscuantoselementostienenuestrodiccionario
numElem=len(futbolistas)
ACEPTAR
print"\nNumerodeelementosdeldiccionariolen(futbolistas)=%i"%numElem
(http://jarroba.com/faq/)
#Imprimimosunalistaconlasclavesdeldiccionario
keys=futbolistas.keys();
print"\nClavesdeldiccionariofutbolistas.keys():\n%s"%keys
#Imprimimosenunalistalosvaloresdeldiccionario
values=futbolistas.values()
print"\nValoresdeldiccionariofutbolistas.values():\n%s"%values
#Obtenemoselvalordeunelementodadasuclave
elem=futbolistas.get(6)
print"\nObtenemoselvalorcuyaclavees'6'futbolistas.get(6):%s"%elem
#Insertamosunelementoenelarray.Silaclaveyaexistenoinsertaelelemento
elem2=futbolistas.setdefault(10,'Cesc')
print"\nInsertamosunelementoeneldiccionario.Silaclaveexistenoloinserta"\
"\nfutbolistas.setdefault(10,'Cesc'):%s"%elem2
#Aadimosunnuevoelementoalalista
futbolistas[22]='Navas'
print"\nDiccionariotrasaadirunelemento:futbolistas[22]='Navas'\n%s"%futbolis
tas
#Eliminamosunelementodeldiccionariodadasuclave
futbolistas.pop(22)
print"\nDiccionariotraseliminarunelemento:futbolistas.pop(22)\n%s"%futbolistas
#Hacemosunacopiadeldiccionario
futbolistasCopy=futbolistas.copy();
print"\nRealizamosunacopiadeldiccionariofutbolistasCopy=futbolistas.copy():\n%s"
http://jarroba.com/diccionariopythonejemplos/
9/14
24/10/2016
Diccionarioenpython,conejemplos
%futbolistas
#Eliminamosloselementosdeundiccionario
futbolistasCopy.clear()
print"\nEliminamosloselementosdeundiccionariofutbolistasCopy.clear():%s"%futbo
listasCopy
#Creamosundiccionarioapartirdeunalistaconlasclaves
keys=['nombre','apellidos','edad']
dictList=dict.fromkeys(keys,'nada')
print"\nCreamosundiccionarioapartirdeunalistadictList=dict.fromkeys(keys,'n
ada'):\n%s"%dictList
#Comprobamossiexisteonounaclave
exit2=futbolistas.has_key(2)
exit8=futbolistas.has_key(8)
print"\nComprobamossiexistenloselementos2y8\n\tfutbolistas.has_key(2)=%s"\
"\n\tfutbolistas.has_key(8)=%s"%(exit2,exit8)
Usodecookies
#Devolvemosloselementosdeldiccionarioentuplas
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
tuplas=futbolistas.items()
print"\nPasamoseldiccionarioatuplasconclavevalor:tuplas=futbolistas.items()
(http://jarroba.com/faq/)
\n%s"%tuplas
ACEPTAR
#Mergeamosdosdiccionarios
suplentes={
4:'Marchena',9:'Torres',12:'Valdes',
13:'Mata',17:'Arbeloa',19:'Llorente',
20:'JaviMartinez',21:'Silva',23:'Reina'
}
futbolistas.update(suplentes)
print"\nAadimosloselementosdeundiccionarioaotrofutbolistas.update(suplentes):
\n%s"%futbolistas
http://jarroba.com/diccionariopythonejemplos/
10/14
24/10/2016
Diccionarioenpython,conejemplos
Recomendados
(http://jarroba.com/mapen
(http://jarroba.com/pandas
(http://jarroba.com/python
javaconejemplos/)
pythonejemplospartei
mongodbdriverpymongo
MapenJava,conejemplos
introduccion/)
conejemplos/)
(http://jarroba.com/mapen
PandasenPython,con
PythonMongoDBDriver
javaconejemplos/)
ejemplosParteIIntroduccin
(pymongo),conejemplos
Usodecookies
(http://jarroba.com/pandas
(Video)
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
pythonejemplospartei
(http://jarroba.com/python
introduccion/)
(http://jarroba.com/faq/)
mongodbdriverpymongo
conejemplos/)
ACEPTAR
(http://jarroba.com/listpython
ejemplos/)
ListenPython,conejemplos
(http://jarroba.com/listpython
ejemplos/)
Loadmoreposts
Comparteestaentradaen:
(htt
(htt
(htt
(htt
11/14
24/10/2016
Diccionarioenpython,conejemplos
2comentariosenDiccionarioenpython,con
url= eArt re.p us=
ejemplos
http icle hp? Dicc
%3
luisdice:
? u=ht iona
A% mini
tp% rio+
10/10/2016alas05:21(http://jarroba.com/diccionariopythonejemplos/#comment68834)
Usodecookies
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
eresuncrack,simplementomuyprecisoycongruenteconloquedices
2F =tru 3A en+
(http://jarroba.com/faq/)
ACEPTAR
%2 e&u
%2 pyth
Fjar rl=ht F% on
Responder(http://jarroba.com/diccionariopythonejemplos/?replytocom=68834#respond)
DavisCamachodice:
m% %2 a.co on+
03/11/2015alas00:56(http://jarroba.com/diccionariopythonejemplos/#comment26197)
Buenasnoches,quisierasabercomogenerounreporte(.txt)apartirdeunalistaincluidaen
2Fdi F% m% eje
undiccionario.Muchasgracias
Responder(http://jarroba.com/diccionariopythonejemplos/?replytocom=26197#respond)
nari rrob ccio os
Dejauncomentario
pyth m% o %3
Tudireccindecorreoelectrniconoserpublicada.Loscamposobligatoriosestnmarcados
con*
on 2Fdi pyth A%
eje
ccio
on
2F
http://jarroba.com/diccionariopythonejemplos/
12/14
2F)Diccionarioenpython,conejemplos
pyth os% rob
24/10/2016
on 2F& a.co
eje t=Di m%
mpl ccio 2Fdi
os% nari ccio
Nombre*
ccio n% on
Usodecookies
Web Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
nari 2C+ eje
denuestrapolticadecookies(http://jarroba.com/faq/)
(http://jarroba.com/faq/)
Publicarcomentario
ACEPTAR
2C+
con
+eje
Siguenos en:
mpl
(http://www.youtube.com/user/Jarrobaweb)
(https://twitter.com/JarrobaWeb)
os&
(https://www.facebook.com/jarrobaWeb)
(https://github.com/jarroba?tab=repositories)
sour
(https://plus.google.com/103352032205227460108/)
ce=j
Contacto: jarrobaweb@gmail.com (mailto:jarrobaweb@gmail.com)
arro
ba.c
FAQ(HTTP://JARROBA.COM/FAQ/)
VISITAS(HTTP://JARROBA.COM/VISITAS/)
om)
GASTOS
http://jarroba.com/diccionariopythonejemplos/
13/14
24/10/2016
Diccionarioenpython,conejemplos
SITEMAP(HTTP://JARROBA.COM/SITEMAP_INDEX.XML)
Copyright2016Jarroba.com(http://www.jarroba.com)Todoslosderechosreservados
Usodecookies
Estesitiowebutilizacookiesparaqueustedtengalamejorexperienciadeusuario.Sicontinanavegandoestdandosuconsentimientoparalaaceptacindelasmencionadascookiesylaaceptacin
denuestrapolticadecookies(http://jarroba.com/faq/)
(http://jarroba.com/faq/)
ACEPTAR
http://jarroba.com/diccionariopythonejemplos/
14/14