Python - Convertir String en diccionario

 
Vista:

Convertir String en diccionario

Publicado por juan (1 intervención) el 29/07/2015 02:03:24
Buenas quisiera saber como puede convertir una serie de caracteres importados desde un .txt a un diccionario uno por uno, los elementos son de esta forma:

978970686544 - Calculo diferencial e integral - James Stewart - 2007
978970686544 - Calculo diferencial e integral - James Stewart - 2007
9702604486 - Introduccion al analisis de circuitos - Robert L. Boylestad - 2011
9586001148 - Algebra y trigonometria - Dennis G. Zill, Jacqueline M. Dewar - 1992
9786071507150 - Precalculo con avances de calculo - Dennis G. Zill, Jacqueline M. Dewar - 2012
9789504926979 - Caballo de guerra - Michael Morpurgo - 2012
958951250X - El testamento del paisa - Agustin Jaramillo Londoño - 2003
9681643615 - La nueva mente del emperador - Roger Penrose - 2002

necesito que el primer numero sea la clave y el resto el valor asociado a esa clave...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Convertir String en diccionario

Publicado por xve (1646 intervenciones) el 29/07/2015 14:40:32
Hola Juan, seria algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf-8 -*-
 
cadena="""978970686544 - Calculo diferencial e integral - James Stewart - 2007
978970686544 - Calculo diferencial e integral - James Stewart - 2007
9702604486 - Introduccion al analisis de circuitos - Robert L. Boylestad - 2011
9586001148 - Algebra y trigonometria - Dennis G. Zill, Jacqueline M. Dewar - 1992
9786071507150 - Precalculo con avances de calculo - Dennis G. Zill, Jacqueline M. Dewar - 2012
9789504926979 - Caballo de guerra - Michael Morpurgo - 2012
958951250X - El testamento del paisa - Agustin Jaramillo Londoño - 2003
9681643615 - La nueva mente del emperador - Roger Penrose - 2002"""
 
miDiccionario={}
for line in cadena.splitlines():
	valores=line.split(" - ",1)
	miDiccionario[valores[0].strip()]=valores[1].strip()
 
for k,v in miDiccionario.items():
	print "Clave:",k,"Valor:",v
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir String en diccionario

Publicado por LUCHER (1 intervención) el 12/11/2019 01:46:36
Yo cambiaría la línea 18 por
1
print('Clave:',k+' '*(13-len(k)),'Valor:',v)
para que los valores se encuentren alineados, pero aclaro que esto es simplemente estético.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar