Iterator nach Wert aufspalten
Verfasst: Montag 27. Januar 2020, 22:13
Hallo,
ich habe einen Iterator, der Listen mit zwei Elementen ausgibt, die nach dem ersten Element geordnet sind.
Wie kann ich diesen Iterator am besten in kleine Iterators aufspalten, die immer genau die Elemente ausgeben, die die gleiche Zahl vorne haben?
Dieser Code tut schonmal, was er soll, aber das kann man bestimmt noch eleganter lösen oder? 
ich habe einen Iterator, der Listen mit zwei Elementen ausgibt, die nach dem ersten Element geordnet sind.
Wie kann ich diesen Iterator am besten in kleine Iterators aufspalten, die immer genau die Elemente ausgeben, die die gleiche Zahl vorne haben?
Code: Alles auswählen
myiterator = iter(
[[1,4124],
[1,12315],
[2,154123],
[4,5123],
[4,9582],
[4,12],
[7,923]])
def my_outer_iterator(my_inner_iterator):
more_input = True
next_item = next(my_inner_iterator)
while more_input:
my_list = []
current_number = next_item[0]
while current_number == next_item[0]:
my_list.append(next_item)
try:
next_item = next(my_inner_iterator)
except:
more_input = False
break
yield my_list
for foo in my_outer_iterator(myiterator):
print(foo)
