¿Cómo puedo obtener la suma por parejas de dos tuplas de igual longitud? Por ejemplo, si tengo (0, -1,7) y (3,4, -7), me gustaría tener (3,3,0) como respuesta.¿Cómo puedo sumar dos tuplas de igual longitud?
Respuesta
tuple(map(lambda (x, y): x + y, zip((0,-1,7), (3,4,-7))))
Si prefiere evitar map
y lambda
entonces usted puede hacer:
tuple(x + y for x,y in zip((0,-1,7), (3,4,-7)))
EDITAR: Como una de las respuestas señalaron, puede utilizar suma en lugar de dividir de manera explícita las tuplas devueltas por zip
. Por lo tanto puede volver a escribir el código de ejemplo anterior, como se muestra a continuación:
tuple(sum(t) for t in zip((0,-1,7), (3,4,-7)))
La lista de comprensión es generalmente preferible. Esto es mucho más intuitivo que todas las respuestas funcionales en # 497885. –
@Glenn: de acuerdo. Dicho esto, de alguna manera me resulta más fácil pensar primero en términos de mapa y filtro y luego asignarlo (sin juego de palabras: P) a una lista de comprensión. –
Soy al revés: las comprensiones de lista (en este caso, expresiones de generador, en realidad) son naturalmente intuitivas para mí, pero tengo que pensar en el mapa, probablemente porque se usa mucho menos en Python. –
>>> t1 = (0,-1,7)
>>> t2 = (3,4,-7)
>>> tuple(i + j for i, j in zip(t1, t2))
(3, 3, 0)
alternativa (bueno si usted tiene muy grandes o tuplas que planea hacer otras operaciones matemáticas con ellos):
> import numpy as np
> t1 = (0, -1, 7)
> t2 = (3, 4, -7)
> at1 = np.array(t1)
> at2 = np.array(t2)
> tuple(at1 + at2)
(3, 3, 0)
Contras: se necesita más preparación de datos. Podría ser excesivo en la mayoría de los casos.
Ventajas: las operaciones son muy explícitas y aisladas. Probablemente muy rápido con grandes tuplas.
Uso suma():
>>> tuple(sum(pair) for pair in zip((0,-1,7), (3,4,-7)))
o
>>> tuple(map(sum, zip((0,-1,7), (3,4,-7))))
'tuple (map (operator.add, (0, -1, 7), (3, 4, -7))' –
- 1. ¿Cómo puedo sumar valores de dos diccionarios en C#?
- 2. Máximo de dos tuplas
- 3. PHP: ¿fusiona dos matrices (de igual longitud) en una asociativa?
- 4. ¿Cómo puedo sumar el primer valor en cada tupla en una lista de tuplas en Python?
- 5. Agregar valores de tuplas de la misma longitud
- 6. PHP sumar dos variables de tiempo
- 7. ¿Rails cómo sumar columnas?
- 8. ¿Cómo dividir la cadena en subcadenas de igual longitud?
- 9. Cómo establecer la longitud de una escala igual en gnuplot
- 10. ¿Cómo puedo iterar sobre las tuplas de los elementos de dos o más listas en Python?
- 11. Cómo sumar matriz JSON
- 12. ¿La forma más simple de sumar dos listas en Scala?
- 13. ¿Cómo puedo sumar columnas en múltiples tablas en MySQL?
- 14. Generando tuplas de tuplas
- 15. Cadena de división para subcadenas de igual longitud en Java
- 16. Cómo sumar elementos dict
- 17. MySQL - ¿Cómo SUMAR veces?
- 18. Sumar rangos consecutivos Pythonically
- 19. Ordenar una lista de tuplas en función de dos elementos
- 20. Haz una lista de vectores de igual longitud
- 21. Desembalaje una lista/tupla de pares en dos listas/tuplas
- 22. Sumar datos XML que están en dos matrices
- 23. ¿Hay dos eventos igual jQuery .on enlazados dos veces?
- 24. Cómo combinar un número arbitrario de tuplas en Python?
- 25. ¿Cómo puedo determinar la distancia entre dos conjuntos de coordenadas de latitud/longitud?
- 26. ¿Cómo puedo probar si una variable no es igual a dos valores?
- 27. ¿Cómo añadir tuplas con
- 28. ¿Cómo sumar números genéricos en C#?
- 29. ¿Puedo iterar a través de dos bucles de igual tamaño con foreach?
- 30. Agrupación Python tuplas lista de tuplas
un duplicado de una pregunta que se hace año y medio que no recibió ningún buenas respuestas parece estar bien. Todas las respuestas están basadas en mapas, que es mucho menos limpia que una expresión de comprensión/generación de listas (abajo). La respuesta aceptada en ese caso es mucho peor: anular una clase solo para realizar un método no tiene ningún sentido. –
Supongo que el motivo de la respuesta aceptada en ese caso es porque ese es el comportamiento extraño particular que la pregunta requiere, por lo que no es realmente culpa del respondedor. –