Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

400
Vistas
Diccionario con claves de tupla y dos listas como valores, donde se agrega un valor a solo una de las listas

Tengo un conjunto de enteros en forma de tupla que forman mis claves (a,b) . Necesito construir un diccionario donde, para cada clave, se coloque un valor (flotante) en una de las dos listas que actúa como valor de par:

 (a,b) : [x_list,y_list]

Estoy construyendo el diccionario a partir de un archivo txt donde cada línea tiene la tupla (a,b) y UNO de los valores de tipo x o y que deben agregarse a la lista. Sin embargo, no entiendo cómo se puede hacer esto.

Ser más preciso:

si el archivo txt contiene:

 15,17,x_type,-1.1 15,17,y_type,44 1,2,y_type,-0.38 15,17,y_type,5

el diccionario debe producir

 d: {(1,2): [[], [-0.38]] , (15,17): [[-1.1], [5,44]]

Lo que estoy intentando:

 example = ['15,17,x_type,-1.1','15,17,y_type,44','1,2,y_type,-0.38','15,17,y_type,5'] for _ in example: [a,b,val_type,val] = _.split(',') if val_type == 'x_type': d[(a,b)] = [val,] if val_type == 'y_type': d[(a,b)] = [,val]

La sintaxis permite [x,] , pero no [,y] . ¿Por qué?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Las listas pueden contener comas finales. [x,] es lo mismo que [x] . Para agregar a una lista anidada específica, seleccione la que desee por índice:

 if type == 'x_type': d[(a,b)][0].append(x) elif type == 'y_type': d[(a,b)][1].append(y)

Esto supone que crea una nueva lista anidada tan pronto como encuentra una clave:

 if (a, b) not in d: d[a, b] = [[], []]

Otro buen truco sintáctico es que cualquier cosa con comas en una expresión de indexación se interpreta como una tupla. Eso significa que puede escribir d[(a, b)] como d[a, b] .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda