Sto provando ad entrare nella comunità Clojure. Ho lavorato molto con Python e una delle funzionalità che utilizzo ampiamente è il metodo zip(), per l'iterazione su coppie di valori. Esiste un modo (intelligente e breve) per ottenere lo stesso risultato in Clojure?Elaborazione di coppie di valori da due sequenze in Clojure
risposta
Un altro modo è quello di usare semplicemente mappa insieme con una certa funzione che raccoglie i suoi argomenti in una sequenza, come questo:
user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])
(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}
L'iterazione su mappe avviene a coppie, ad es. in questo modo:
(doseq [[k v] (zipmap [:a :b :c] (range 3))]
(printf "key: %s, value: %s\n" k v))
stampe:
key: :c, value: 2
key: :b, value: 1
key: :a, value: 0
Ho verificato l'approccio e non è stato in grado di gestire tre o più sequenze. Avrei dovuto menzionare questo requisito nella domanda iniziale, mi dispiace. – Thomas
La domanda è stato risposto, ma c'è ancora interleave
, che gestisce anche un numero arbitrario di sequenze, ma non raggruppa la sequenza risultante in tuple (ma è possibile utilizzare partition
per a).
- 1. elaborazione JAXB di sequenze XML
- 2. Sequenze di valori di gruppo
- 3. Incoerenza con le sequenze di Clojure?
- 4. Looping di coppie di valori in bash
- 5. Come combinare le sequenze in clojure?
- 6. coppie di valori chiave in C# Parametri
- 7. Rimozione chiave valori coppie da un elenco di dizionari
- 8. come ottenere coppie di valori consecutivi da F # Seq
- 9. Clojure mappatura parallela e sequenze infinite
- 10. Aggiunta/concatenazione di due sequenze IEnumerable
- 11. Calcola tutte le possibili coppie di articoli da due elenchi?
- 12. Trovare tutte le coppie di sequenze che differiscono esattamente una posizione
- 13. Come migliorare le prestazioni di elaborazione del testo in Clojure?
- 14. Crea tabella con tutte le coppie di valori da una colonna in R, contando valori univoci
- 15. c valori # estratto da coppie chiave-valore in stringa
- 16. Unione di due sequenze in scala in modo ordinato
- 17. JSONObject rimuovere coppie di valori vuoti
- 18. Ordinamento di un array da due valori
- 19. Parse coppie di valori chiave in un file di testo
- 20. elaborazione Testo due file
- 21. iterare su clojure mappa coppie (anello)
- 22. Array di hash di coppie di valori chiave rubino
- 23. Deserialize matrice di coppie di valori chiave utilizzando Json.NET
- 24. eliminazione chiave, coppie di valori da un dizionario dati un elenco di chiavi da eliminare
- 25. Sequenze pigro clojure nei risultati math.combinatorics in OutOfMemory (OOM) Errore
- 26. Generazione di due sequenze indipendenti di numeri casuali (C++)
- 27. Come creare un singolo elenco di coppie di oggetti da due elenchi in C#?
- 28. TSQL, contando coppie di valori in una tabella
- 29. Memorizzare coppie di valori chiave duplicati in C#
- 30. disimballaggio un elenco/tupla di coppie in due elenchi/tuple
Questo esempio è stato in grado di gestire tre sequenze, grazie. – Thomas