Próbuję dostać się do społeczności Clojure. Dużo pracuję z Pythonem, a jedną z funkcji, które szeroko wykorzystuję, jest metoda zip() do iterowania par wartości. Czy istnieje (sprytny i krótki) sposób osiągnięcia tego samego w Clojure?Przetwarzanie par wartości z dwóch sekwencji w Clojure
8
A
Odpowiedz
12
Innym sposobem jest po prostu użyć mapy wraz z jakiejś funkcji, która zbiera swoje argumenty w sekwencji, tak:
user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])
4
(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}
Powtarzanie map odbywa się w pary, np. tak:
(doseq [[k v] (zipmap [:a :b :c] (range 3))]
(printf "key: %s, value: %s\n" k v))
drukuje:
key: :c, value: 2
key: :b, value: 1
key: :a, value: 0
+0
Przetestowałem to podejście i nie mogłem obsłużyć trzech lub więcej sekwencji. Powinienem był wspomnieć o tym wymogu w początkowym pytaniu, przepraszam. – Thomas
3
Pytanie został odebrany, ale wciąż jest interleave
, który obsługuje również dowolną liczbę sekwencji, ale nie grupuje wynikowej sekwencji w krotki (ale możesz użyć partition
dla w).
Powiązane problemy
- 1. przetwarzanie tekstu z dwóch plików
- 2. Pozycja podporządkowania Clojure w sekwencji
- 3. Typ sekwencji clojure
- 4. W Clojure jest pustą listą sekwencji nieskończonych wartości null?
- 5. Clojure - przetwarzanie dużych plików z małą pamięcią
- 6. Tworzenie HList wszystkich par z dwóch HLists
- 7. Clojure - Przyspiesz przetwarzanie dużych plików
- 8. Dodaj pozycje do listy/sekwencji w Clojure
- 9. Usuwanie kluczowych wartości par z listy słowników
- 10. przetwarza ciąg z par nazwa wartości
- 11. Pytanie idiomatycznego clojure o transformacji sekwencji
- 12. Array hash par wartości klucza w Ruby
- 13. c Wartości ekstrakt # z par klucz-wartość w ciąg
- 14. „Dla każdego” pętli w tabeli lua z par wartości kluczowych
- 15. Oceń wszystkie kombinacje par rzędów dwóch tensorów w tensorflow
- 16. jak zastosować funkcję dwóch argumentów do sekwencji?
- 17. Generowanie sekwencji o wartości kroku
- 18. Clojure: w jaki sposób wywoływać idiomatyczne połączenia? na leniwej sekwencji
- 19. Co jest złego w korzystaniu z par zabezpieczeń z defprotocol i defrecord w Clojure?
- 20. Zmiana minimalnej wartości sekwencji PostgreSta
- 21. wartości Mapowanie z dwóch tablicy w Ruby
- 22. Cofnięcie tablicą par wartości kluczowych korzystających Json.NET
- 23. Jak mogę debugować przetwarzanie wartości hibernate.hbm2ddl.import_files w połączeniu z hsqldb?
- 24. Zwracanie wielu wartości z Clojure makro
- 25. Filtruj wartości zerowe z mapy Clojure?
- 26. Funkcja skrótu przemiennego dla par wartości uint32_t
- 27. Clojure: "=" porównuje wartości w kolekcjach, dlaczego nie może porównać dwóch list w tym przypadku?
- 28. Konwersja właściwości i wartości obiektu do tablicy par wartości klucza
- 29. Porównywanie dwóch tablic dla dwóch wartości
- 30. Losowe wybory dwóch wartości
Ten przykład był w stanie obsłużyć trzy sekwencje, dzięki. – Thomas