presento este código basado en Peter Hoffmann's answer como respuesta a dfa's comment.
Se garantiza que funciona independientemente de si su tupla tiene un número par de elementos.
[(tup[i], tup[i+1]) for i in range(0, (len(tup)/2)*2, 2)]
El parámetro gama (len(tup)/2)*2
calcula el número más alto incluso menor o igual a la longitud de la tupla lo que se garantiza que funcione si o no la tupla tiene un número par de elementos.
El resultado del método va a ser una lista. Esto se puede convertir a tuplas usando la función tuple()
.
muestra:
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)
salida
Odd Set
[0, 1, 2, 3, 4]
[(0, 1), (2, 3)]
Even Set
[0, 1, 2, 3]
[(0, 1), (2, 3)]
Usted puede no querer a una tupla con nombre variable, ya que sobrescribe la tupla función interna(). – recursive