Comment puis-je concaténer deux éléments en générant à partir d'une fonction en python?Concaténer tout en générant
Le cas de base:
import itertools
def test():
for number in range(0,10):
yield number
list(test()) # [0...9]
si je veux donner à la fois la number
et sa place number**2
import itertools
def test():
for number in range(0,10):
yield itertools.chain.from_iterable([
number,number*2
])
list(test())
# [0,0,1,1,2,4,3,9,...] pretended
# <itertools.chain at 0x135decfd0> ... what I got
faire Cependant itertools.chain.from_iterable([generator1, generator2])
de l'extérieur donne le résultat attendu.
def first_list():
for number in range(0,5):
yield number
def second_list():
for number in range(5,10):
yield number
list(itertools.chain.from_iterable([first_list(), second_list()]))
Pourquoi ne pas simplement: 'Numéro rendement numéro de rendement ** 2'? –
vaultah
Vous ne voulez pas concaténer, vous voulez un rendement double ... c'est une différence. – Paebbels
de l'extérieur, ils sortent concaténés –