Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

247
Visualizações
Convierta varias listas con valor faltante en un diccionario

Estoy tratando de agregar varias listas en un diccionario: una clave y una lista de valores. Puedo hacer dos listas en un diccionario, pero me pregunto cómo unir varias listas con algún valor faltante en una de las listas.

 a = ['apple', 'orange', 'lemon'] b = ['London', 'New York', 'Tokyo'] c = ['Red', 'Orange', 'Yellow'] d = ['good', 'bad', ''] fruito = zip(a, b) fruit_dictionary = dict(fruito); fruit_dictionary

Rendimiento esperado:

 fruit_dictionary = {'apple': ['London', 'Red', 'good'], 'orange': ['New York', 'Orange', 'bad'], 'lemon': ['Tokyo', 'Yellow']}
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede usar la siguiente comprensión de diccionario con zip y empaquetado de argumentos:

 {k:v for k, *v in zip(a,b,c,d)}

producción:

 {'apple': ['London', 'Red', 'good'], 'orange': ['New York', 'Orange', 'bad'], 'lemon': ['Tokyo', 'Yellow', '']}

O para deshacerse de cadenas vacías:

 {k:[e for e in v if e] # using truthy values here, could also use e != '' for k, *v in zip(a,b,c,d)}

producción:

 {'apple': ['London', 'Red', 'good'], 'orange': ['New York', 'Orange', 'bad'], 'lemon': ['Tokyo', 'Yellow']}

listas de longitudes desiguales

Para completar, estoy agregando aquí una solución genérica en caso de que las listas de entrada tengan diferentes longitudes. La solución sería usar itertools.zip_longest :

 a = ['apple', 'orange', 'lemon'] b = ['London', 'New York', 'Tokyo'] c = ['Red', 'Orange', 'Yellow'] d = ['good', 'bad'] from itertools import zip_longest {k:[e for e in v if e] for k, *v in zip_longest(a,b,c,d)}
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda