Come posso ottenere la somma a coppie di due tuple di uguale lunghezza? Per esempio se ho (0, -1,7) e (3,4, -7) mi piacerebbe avere (3,3,0) come risposta.Come posso sommare a coppie due tuple di uguale lunghezza
risposta
tuple(map(lambda (x, y): x + y, zip((0,-1,7), (3,4,-7))))
Se si preferisce evitare map
e lambda
allora si può fare:
tuple(x + y for x,y in zip((0,-1,7), (3,4,-7)))
EDIT: Come una delle risposte sottolineato, è possibile utilizzare somma anziché esplicitamente dividere le tuple restituite per zip
. Pertanto si può riscrivere il codice di esempio sopra come illustrato di seguito:
tuple(sum(t) for t in zip((0,-1,7), (3,4,-7)))
La comprensione delle liste è solitamente preferibile. Questo è molto più intuitivo di tutte le risposte funzionali in # 497885. –
@Glenn: concordato. Detto questo, in qualche modo, trovo più facile pensare prima in termini di mappa e filtro e quindi mapparlo (nessun gioco di parole inteso: P) in una lista di comprensione. –
Io sono il contrario: le list comprehensions (in questo caso, le espressioni generative, in realtà) sono naturalmente intuitive per me, ma devo pensare alla mappa - probabilmente perché è usata molto meno frequentemente in Python. –
>>> t1 = (0,-1,7)
>>> t2 = (3,4,-7)
>>> tuple(i + j for i, j in zip(t1, t2))
(3, 3, 0)
alternativa (va bene se avete molto grandi tuple o avete intenzione di fare altre operazioni matematiche con loro):
> 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)
Contro: è necessaria una maggiore preparazione dei dati. Potrebbe essere eccessivo nella maggior parte dei casi.
Pro: le operazioni sono molto esplicite e isolate. Probabilmente molto veloce con grandi tuple.
Usa sum():
>>> tuple(sum(pair) for pair in zip((0,-1,7), (3,4,-7)))
o
>>> tuple(map(sum, zip((0,-1,7), (3,4,-7))))
'tupla (mappa (operator.add, (0, -1, 7), (3, 4, -7)))' –
- 1. Scala: Come sommare una lista di tuple
- 2. disimballaggio un elenco/tupla di coppie in due elenchi/tuple
- 3. Tupla multipla a tupla a due coppie in Python?
- 4. scala: produce combinazioni a coppie di due anelli
- 5. Python - Gruppo per sommare e una lista di tuple
- 6. Aggiunta di due tuple elementwise
- 7. unire due liste di tuple con timestamp e coda lunghezze
- 8. Conteggio stringa rapido() rispetto a NSString. Lunghezza non uguale
- 9. Come posso sovraccaricare l'operatore + = "più uguale a"?
- 10. Converti tuple-stringhe a tuple di stringhe
- 11. Come posso aggiungere coppie di valori chiave a un array?
- 12. Come unire due tuple in Python?
- 13. Istruzione SSE per sommare interi 32 bit a 64 bit
- 14. Perché le tuple hanno use_allocator ma le coppie no?
- 15. matplotlib (lunghezza unità uguale): con proporzioni "uguali" l'asse z non è uguale a x- e y-
- 16. Come + i valori in due liste di tuple
- 17. SQLite SELECT uguale a uno di due valori
- 18. Dato un numero N quante coppie di numeri hanno una somma quadrata inferiore o uguale a N?
- 19. php non è uguale a non è uguale, uguale a
- 20. Disimballaggio un 1-tuple in un elenco di lunghezza 1
- 21. Rails come sommare le colonne?
- 22. Fare una lista di vettori di uguale lunghezza
- 23. Come combinare due elenchi per tracciare coppie di coordinate?
- 24. Scala: due elenchi per la lista Tuple
- 25. Come posso sommare una colonna di un elenco?
- 26. Come sommare serie JSON
- 27. Come faccio a sommare le tuple in una lista in cui il primo valore è lo stesso?
- 28. Il modo più semplice per sommare due elenchi in Scala?
- 29. Trova sovrapposizioni di intervalli a coppie (segmenti)
- 30. Come contare a coppie con 'range' di Python
un duplicato di una domanda ha chiesto un anno e mezzo fa, che non ha ricevuto alcuna buone risposte sembra che vada bene. Tutte le risposte in questo sono basate sulla mappa, che è molto meno pulita di un'espressione di comprensione/generazione di liste (sotto). La risposta accettata in questo è molto peggio: ignorare una classe solo per eseguire un metodo su di essa non ha alcun senso. –
Suppongo che la ragione per la risposta accettata in quello sia perché questo è il particolare comportamento strano che la domanda ha richiesto, quindi non è proprio colpa del rispondente. –