ich diesen Code präsentieren basierend auf Peter Hoffmann's answer als Antwort auf dfa's comment.
Es wird garantiert funktionieren, ob Ihr Tupel eine gerade Anzahl von Elementen hat oder nicht.
[(tup[i], tup[i+1]) for i in range(0, (len(tup)/2)*2, 2)]
Die (len(tup)/2)*2
Bereichsparameter berechnet die höchste gerade Zahl kleiner oder gleich die Länge des Tupels so gewährleistet ist, zu arbeiten, ob das Tupel eine gerade Anzahl von Elementen hat.
Das Ergebnis der Methode wird eine Liste sein. Dies kann mit der Funktion tuple()
in Tupel konvertiert werden.
Probe:
def inPairs(tup):
return [(tup[i], tup[i+1]) for i in range(0, (len(tup)/2)*2, 2)]
# odd number of elements
print("Odd Set")
odd = range(5)
print(odd)
po = inPairs(odd)
print(po)
# even number of elements
print("Even Set")
even = range(4)
print(even)
pe = inPairs(even)
print(pe)
Ausgabe
Odd Set
[0, 1, 2, 3, 4]
[(0, 1), (2, 3)]
Even Set
[0, 1, 2, 3]
[(0, 1), (2, 3)]
Sie können nicht auf eine Variable mit dem Namen Tupel wollen, wie es die eingebaute Funktion Tupel überschreibt(). – recursive