Haz un diccionario en Python a partir de valores de entrada

Parece simple, pero esquivo, quiere construir un dict a partir de la entrada de [clave, valor] pares separados por un espacio usando solo una statement de Python. Esto es lo que tengo hasta ahora:

d={} n = 3 d = [ map(str,raw_input().split()) for x in range(n)] print d 

Entrada:

 A1023 CRT A1029 Regulator A1030 Therm 

Salida deseada:

 {'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'} 

utilizando str.splitines() y str.split() :

 In [126]: strs="""A1023 CRT .....: A1029 Regulator .....: A1030 Therm""" In [127]: dict(x.split() for x in strs.splitlines()) Out[127]: {'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'} 

str.splitlines ([keepends]) -> lista de cadenas

Devuelve una lista de las líneas en S, rompiendo los límites de las líneas. Los saltos de línea no se incluyen en la lista resultante a menos que se denenten objectives de mantenimiento y sean verdaderos.

str.split ([sep [, maxsplit]]) -> lista de cadenas

Devuelve una lista de las palabras en la cadena S, usando sep como la cadena delimitadora. Si se da maxsplit, como máximo se realizan las divisiones maxsplit. Si sep no se especifica o es Ninguno, cualquier cadena de espacio en blanco es un separador y las cadenas vacías se eliminan del resultado.

Esto es lo que terminamos usando:

 n = 3 d = dict(raw_input().split() for _ in range(n)) print d 

Entrada:

 A1023 CRT A1029 Regulator A1030 Therm 

Salida:

 {'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'} 

Suponiendo que tiene el texto en la variable s :

 dict(map(lambda l: l.split(), s.splitlines())) 
 n = int(input()) #n is the number of items you want to enter d ={} for i in range(n): text = input().split() #split the input text based on space & store in the list 'text' d[text[0]] = text[1] #assign the 1st item to key and 2nd item to value of the dictionary print(d) 

ENTRADA:

 3 A1023 CRT A1029 Regulator A1030 Therm 

NOTA: He agregado una línea adicional para cada entrada para obtener cada entrada en líneas individuales en este sitio. Como colocar sin una línea adicional crea una sola línea.

SALIDA:

 {'A1023': 'CRT', 'A1029': 'Regulator', 'A1030': 'Therm'} 
 for i in range(n): data = input().split(' ') d[data[0]] = data[1] for keys,values in d.items(): print(keys) print(values) 
 n=int(input()) pair = dict() for i in range(0,n): word = input().split() key = word[0] value = word[1] pair[key]=value print(pair) 
 n = int(input("enter an value:")) d = {} for i in range(n): keys = input() # here i have taken keys as strings values = int(input()) # here i have taken values as integers d[keys] = values print(d) 
 record = int(input("Enter the student record need to add :")) stud_data={} for i in range(0,record): Name = input("Enter the student name :").split() Age = input("Enter the {} age :".format(Name)) Grade = input("Enter the {} grade :".format(Name)).split() Nam_key = Name[0] Age_value = Age[0] Grade_value = Grade[0] stud_data[Nam_key] = {Age_value,Grade_value} print(stud_data)