Python: como iterar em 2 iteráveis sequencialmente (não zip) [duplicado]
Aug 21 2020
Imagine que tenho 2 iteráveis de qualquer tipo, digamos, por exemplo, lista e string:
a = [1, 2, 3]
b = "abc"
Existe uma maneira concisa amigável de python para iterar em aeb sequencialmente (não em paralelo como com zip) sem truques (a ideia aqui é que aeb podem ser qualquer coisa que sabemos que são iteráveis)
Portanto, não há coisas como:
for i in a + list(b):
Idealmente, eu teria algo:
for i in something(a, b):
print(i)
isso seria equivalente a fazer
for i in a:
print(i)
for i in b:
print(i)
Respostas
1 Jab Aug 21 2020 at 04:46
O "algo" que você está procurando é itertools.chain:
from itertools import chain
for i in chain(a, b):
print(i)
1
2
3
a
b
c
1 lxop Aug 21 2020 at 04:46
O que você está procurando é itertools.chain:https://docs.python.org/3.8/library/itertools.html#itertools.chain
Você o usaria assim:
import itertools
a = [1,2,3]
b = "abc"
for i in itertools.chain(a, b):
print(i)
que produz
1
2
3
a
b
c
Code-Apprentice Aug 21 2020 at 04:46
itertools.chain () faz o truque. Você deve manter esta biblioteca em mente quando estiver procurando por coisas como esta.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino