Ich bin neu bei Generatoren. Warum wird die erste richtige Funktion mit einem Druck Anweisung funktioniert nicht, wenn ich ersetzen den Druck mit Ausbeute (Python 2.7)Generator verhält sich nicht wie erwartet
Zuerst wird die korrekte Funktion mit Druck:
def make_all_pairs(list_):
pivot = list_.pop(0)
for el in list_:
pair = (pivot, el)
print pair
if len(list_) > 1:
make_all_pairs(list_)
make_all_pairs(["a","b","c","d","e"])
('a', 'b')
('a', 'c')
('a', 'd')
('a', 'e')
('b', 'c')
('b', 'd')
('b', 'e')
('c', 'd')
('c', 'e')
('d', 'e')
Dann der Generator, der nicht alle Kombinationen liefert
def make_all_pairs(list_):
pivot = list_.pop(0)
for el in list_:
pair = (pivot, el)
yield pair
if len(list_) > 1:
make_all_pairs(list_)
x = make_all_pairs(["a","b","c","d","e"])
for el in x:
print el
('a', 'b')
('a', 'c')
('a', 'd')
('a', 'e')
Danke für die Antworten verwenden Konstrukt! – TomKivy