У меня есть последовательность попарно: Original = [(0,0); (1,2); (3,4)] Я хотел бы преобразовать этот seq of (int * int) в seq of int Final = [0,0,1,2,3,4] Может ли кто-нибудь предложить мне способ сделать это ?Как преобразовать (int * int) список в (int: list) в F #
ответ
Использование List.collect
[(0,0); (1,2); (3,4)] |> List.collect (fun (x,y) -> [x; y])
В своем вопросе вы говорите, что хотите получить список в начале, но в конце концов вы говорите последовательности, в любом случае для последовательности сбора также доступна.
Для получения дополнительной информации collect
является функцией монадической bind или оператор >>=
в некоторых языках (SelectMany в C#), которые для списков/последовательность эквивалентна картой с последующим CONCAT.
[(0,0); (1,2); (3,4)] |> List.map(fun (x,y)->[x; y]) |> List.concat
ie. карта кортеж последовательность в список списков, а затем присоединиться списки вместе
или
[(0,0); (1,2); (3,4)] |> Seq.map(fun (x,y)->seq { yield x; yield y}) |> Seq.concat |> Seq.toList
Я придумал более длинную версию Seq первой, потому что модуль Seq традиционно больше операторов для работы с. Однако приходят типы F # 4, Seq, List и Array будут иметь полный охват оператора.
Другой вариант заключается в использовании выражений последовательности - Я очень нравится этот вариант, но это вопрос личных предпочтений:
[ for a, b in original do
yield a
yield b ]
- 1. F # int -> int list рекурсивная функция
- 2. Как преобразовать массив [List [Int]] в РДУ [(целое, Int, Int)]
- 3. Список [Future [List [Int]]] to List [Int]
- 4. Как преобразовать Список [Любой] в список (Int, Int) в scala?
- 5. Как преобразовать список int в список Nullable <int>?
- 6. Как преобразовать int? в int
- 7. Как преобразовать int * в int
- 8. Передача int && в f (int &&)
- 9. F # Int * Int confusion
- 10. Список <int> vs int list
- 11. Как преобразовать int в список <int>
- 12. Добавить int в список int []
- 13. преобразовать список в int array
- 14. Доступ Элементы в Список [Int] Список [Int]
- 15. преобразовать int в nullable int?
- 16. Невозможно преобразовать (int *) в int
- 17. Как преобразовать список int в список списков?
- 18. преобразование int в список, содержащий int
- 19. Как преобразовать Int в int в swift?
- 20. Как преобразовать [Int] в Int ... в Swift?
- 21. Что означает int (* f []) (int *)?
- 22. Поверните список int в int
- 23. Основы Python: Как преобразовать список, содержащий int в простой int?
- 24. F # - Результат - это список списка int вместо списка int
- 25. Scala преобразовать список [Любой] в список [Int]
- 26. Int List To Integer List
- 27. В Котлине Как преобразовать Int? к Int
- 28. Int Option вместо Int в F #
- 29. Как преобразовать логический список в int?
- 30. Как преобразовать Int (вход) в список
первоначальный список список кортежем 2 ст. Должен ли я иметь скобу вокруг и b, другими словами [для (a, b) в оригинале do дает результат b]? (Я тестировал код, оба способа дали одинаковые результаты) Какой из них правильный и почему?> –
Если они оба работают, и оба они дают одинаковые результаты, то они оба правильны. Parens являются обязательными только в F #, когда их отсутствие приводит к ошибкам двусмысленности и компилятора. –