Чуть больше , чем инверсия этого .
В: многострочные данные DSV и один символ-разделитель. DSV может быть принят как файл, имя файла, строка, разделенная переносом строки, список строк и т. Д. Все записи имеют одинаковое количество полей, и ни одно из полей не является пустым. Данные не содержат символ разделителя, и нет механизма цитирования или экранирования.
Out: структура данных, представляющая DSV, например список списков строк или матрица строк.
Примеры
["here is,some,sample","data,delimited,by commas"]
и ","
:
[["here is","some","sample"],["data","delimited","by commas"]]
["hello;\"","\";world","\";\""]
и ";"
:
[["hello","\""],["\"","world"],["\"","\""]]
(экранирует, потому что этот пример использует JSON)
["to be or not","that is the question"]
и " "
:
[["to","be","or","not"],["that","is","the","question"]]
",for,example,this,string,"
Ответы:
Желе ,
32 байтаДеннис отмечает, что, хотя двухбайтовое решение, похоже, не работает, само двоичное соединение работает, и именно так анализируются аргументы командной строки, которые заставляют его выглядеть таким образом.
Попробуйте онлайн! - нижний колонтитул вызывает функцию с явным указанием левой и правой стороны и форматирует ее как сетку *.
Точно так же, как
ṣ
показано ниже, за исключением случаев разделения на вхождения правильного аргумента, а не на подсписки, равные правому аргументу.В 3 byter - колонтитул отображает результат в виде сетки *.
Диадическая ссылка (функция), которая принимает список DSV слева и разделитель справа.
Как?
* Как полноценная программа, неявный вывод просто «соединяет» все символы, поэтому нижний колонтитул ссылки TIO вызывает ссылку как диаду и использует ее
G
для правильного форматирования результата.источник
Japt , 3 байта
Проверьте это онлайн! (Использует
-Q
флаг, чтобы распечатать результат)источник
Powershell,
2522/23 байтаДва параметра, один просто вызывает split для первого аргумента, используя второй аргумент в качестве значения разделителя.
Один байт длиннее, встроенный для разбора csvs, принимает имя файла в качестве первого аргумента и делимита в качестве второго.
-2, потому что он не требует параметра
-Delimiter
(-D
) и примет его по умолчанию.к сожалению, powershell не может передать массив из двух параметров, так как он будет предполагать, что они оба являются файлами, и выполнит команду для него дважды, ни один другой метод ввода с двумя переменными, насколько я вижу, не короче этого, так что это вероятно кратчайший ответ.
ipcsv
является псевдонимом дляImport-Csv
, принимает имя файла в качестве первого безымянного ввода и символ разделителя в качестве второго по умолчанию.Запуск против примера из вики-страницы возвращает
источник
Python, 33 байта
источник
Haskell, 29 байт
Пример использования:
(map.splitOn) " " ["to be or not","that is the question"]
->[["to","be","or","not"],["that","is","the","question"]]
.источник
05AB1E , 5 байтов
Попробуйте онлайн!
Объяснение:
источник
JavaScript, 26 байт
Получает ввод в формате (массив строк) (разделитель)
Попробуйте онлайн!
источник
Mathematica, 11 байт
Встроенная функция, принимающая два аргумента, список строк и символ (и даже более общий, чем этот). Пример использования:
доходность
источник
MATLAB / Octave,
4125 байтСоздает анонимную функцию с именем,
ans
которая принимает первый ввод как массив строк, а второй - как строку.Попробуйте онлайн
источник
Чеддер, 19 байт
Хорошая демонстрация циклических способностей. Я добавил новый состав и ф.оп. блоки, что позволяет интересно играть в гольф.
(=>:@.split)
должен работать, но это не так :(источник
MATL,
14124 байтаПопробуйте это в MATL Online (ссылка имеет модификацию в конце, чтобы показать размерность выходного массива ячеек).
объяснение
источник
CJam, 5 байтов
Объяснение:
источник
Ruby использует '-n', 17 + 1 = 18 байт
Как это устроено
*$*
разбивает строку и мы можем использовать ее в качестве параметра дляsplit
функцииchomp
но любое другое решение, кажется, дольше, чем это.источник
Rebol, 33 байта
источник
GNU sed , 48 + 1 (флаг r) = 49 байт
Попробуйте онлайн!
В sed нет типов данных, но естественным представлением списка будет набор строк. Таким образом, формат ввода состоит из записей DSV, каждая из которых находится на отдельной строке, а разделитель присутствует в первой строке.
Объяснение: по сути, sed запускает скрипт столько раз, сколько есть строк ввода
источник
REXX, 95 байт
Принимает имя файла и разделитель в качестве аргументов, содержимое файла помещается в stem
o
.источник
APL (Дьялог) , 4 байта
В версиях до 15.0 включительно это необходимо,
⎕ML←3
что по умолчанию многими. С версии 16.0⊂
можно просто заменить⊆
на тот же эффект.Принимает разделитель в качестве левого аргумента и DSV в качестве правого аргумента.
Попробуйте онлайн!
≠
неравенства (левого аргумента и правого аргумента)⊂¨
разделить каждый⊢
правильный аргументПод разделом подразумевается удаление всех элементов, обозначенных соответствующим нулем в левом аргументе, и начало нового раздела, когда соответствующее число в левом аргументе больше, чем его предшественник, т. Е. На каждом, если левый аргумент является логическим, как здесь дело
источник
R, 8 байт (2 способа)
R имеет две встроенные функции, которые отвечают требованиям этой задачи:
принимает вектор строк и разделитель и возвращает список векторов разделенных строк.
принимает имя файла и разделитель и возвращает фрейм данных. Технически это может быть 10 байтов, потому что ему нужна опция,
header=F
чтобы он не считывал первые элементы как имена столбцов. В настоящее время ссылка TIO читает со стандартного ввода.Попробуйте это онлайн!
источник