non posso usare itertoolsContinuare fino a quando tutti gli iteratori sono fatte Python
Così la codifica sembra abbastanza semplice, ma sto avendo difficoltà a pensare dell'algoritmo per mantenere un generatore di esecuzione fino a quando tutte le iterazioni sono stati elaborati completamente.
L'idea della funzione è di prendere 2 iterables come parametri come questa ...
(['a', 'b', 'c', 'd', 'e'], [1,2,5])
E ciò che fa è produrre questi valori ...
a, b, b, c, c, c, c, c
Tuttavia, nel caso in cui il secondo iterabile finisca per primo tra gli elementi, la funzione semplicemente itera il valore rimanente una volta ...
Così i valori rimanenti sarebbero iterate in questo modo:
d, e
def iteration(letters, numbers):
times = 0
for x,y in zip(letters, numbers):
try:
for z in range(y):
yield x
except:
continue
[print(x) for x in iteration(['a', 'b', 'c', 'd'], [1,2,3])]
Sto avendo difficoltà a ignorare il primo StopIteration e continuando a completamento.
Beh questo è dove sto avendo problemi con pure. Non so come ottenere l'iterazione per continuare insieme contemporaneamente in modo che a ottiene il valore 1 e b ottiene il valore 2. – FlyingBumble
cosa dovrebbe succedere con d ed e? –
Quando l'iterabile con i numeri si esaurisce, i restanti iterabili nel primo devono essere restituiti solo una volta ciascuno. – FlyingBumble