Zipando listas de tamanhos diferentes repetindo a mais curta
Ao tentar compactar duas listas com comprimentos desiguais, a função zip integrada falha curto, não repetindo a lista mais curta para corresponder à maior. Para superar isso, abordagens alternativas são necessárias.
Solução Usando itertools.cycle
A função itertools.cycle fornece a capacidade de iterar infinitamente sobre um iterável. Este recurso pode ser aproveitado para repetir a lista mais curta indefinidamente enquanto a compacta com a lista mais longa.
Implementação:
import itertools
A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
B = ["A", "B", "C"]
zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)
Nesta solução, usamos uma instrução condicional para determinar qual lista deve ser repetida. Se A for maior que B, usamos itertools.cycle para repetir B, e se B for maior que A, repetimos A.
O zip_list resultante conterá tuplas emparelhando elementos de A e B, com B sendo repetido conforme necessário para corresponder ao comprimento de A. Esta abordagem garante que todos os elementos de ambas as listas sejam emparelhados, com a lista mais curta repetida conforme necessário.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3