Sedikit lebih dari kebalikan dari ini .
Dalam: data DSV multi-line dan karakter pembatas tunggal. DSV dapat diambil sebagai file, nama file, string yang dipisahkan baris, daftar string, dll. Semua catatan memiliki jumlah bidang yang sama, dan tidak ada bidang yang kosong. Data tidak mengandung karakter pembatas dan tidak ada mekanisme penawaran atau pelarian.
Keluar: Struktur data yang mewakili DSV, misalnya daftar daftar string atau matriks string.
Contohnya
["here is,some,sample","data,delimited,by commas"]
dan ","
:
[["here is","some","sample"],["data","delimited","by commas"]]
["hello;\"","\";world","\";\""]
dan ";"
:
[["hello","\""],["\"","world"],["\"","\""]]
(lolos karena contoh ini menggunakan JSON)
["to be or not","that is the question"]
dan " "
:
[["to","be","or","not"],["that","is","the","question"]]
",for,example,this,string,"
Jawaban:
Jelly ,
32 byteDennis menunjukkan bahwa sementara solusi 2 byte tampaknya tidak berfungsi, tautan diad itu sendiri berfungsi, dan bahwa sebenarnya cara argumen baris perintah diuraikan yang membuatnya terlihat seperti itu.
Cobalah secara Online! - footer memanggil fungsi dengan set kiri dan kanan secara eksplisit, dan memformat sebagai kisi *.
Persis seperti di bawah ini, kecuali
ṣ
terpecah pada kemunculan argumen yang benar dan bukan pada sublist yang sama dengan argumen yang benar.The 3 byter - footer menampilkan hasil sebagai grid *.
Link diad (fungsi) yang mengambil daftar DSV di sebelah kiri dan pembatas di sebelah kanan.
Bagaimana?
* Sebagai program lengkap, output implisit hanya akan "smush" bersama semua karakter, sehingga footer dari tautan TIO menyebut tautan tersebut sebagai angka dua dan digunakan
G
untuk memformat hasilnya dengan baik.sumber
Japt , 3 byte
Uji secara online! (Menggunakan
-Q
bendera untuk mencetak pracetak keluaran)sumber
Powershell,
2522/23 byteDua Opsi, satu hanya memanggil split pada arg pertama, menggunakan arg kedua sebagai nilai batas.
Satu byte lagi, dibangun untuk mem-parsing csvs, menggunakan nama file sebagai arg pertama dan delim sebagai yang kedua.
-2 karena tidak memerlukan param
-Delimiter
(-D
), dan akan menganggapnya secara default.sayangnya PowerShell tidak dapat melewati array dari dua params, karena akan menganggap mereka berdua file, dan akan menjalankan perintah terhadapnya dua kali, tidak ada metode input dua-var lainnya lebih pendek dari ini sejauh yang saya bisa lihat, jadi ini mungkin jawaban sesingkat mungkin.
ipcsv
adalah alias untukImport-Csv
, mengambil nama file sebagai input tanpa nama pertama, dan karakter delim sebagai yang kedua secara default.Jalankan melawan contoh dari pengembalian halaman wiki
sumber
Python, 33 byte
sumber
Haskell, 29 byte
Contoh penggunaan:
(map.splitOn) " " ["to be or not","that is the question"]
->[["to","be","or","not"],["that","is","the","question"]]
.sumber
05AB1E , 5 byte
Cobalah online!
Penjelasan:
sumber
JavaScript, 26 byte
Menerima input dalam format (array string) (pembatas)
Cobalah online!
sumber
Mathematica, 11 byte
Fungsi builtin mengambil dua argumen, daftar string dan karakter (dan bahkan lebih umum dari itu). Contoh penggunaan:
hasil panen
sumber
MATLAB / Oktaf,
4125 byteMembuat fungsi anonim bernama
ans
yang menerima input pertama sebagai array sel string dan input kedua sebagai string.Cobalah secara Online
sumber
Cheddar, 19 byte
demonstrasi yang bagus dari kemampuan pengulangan. Saya menambahkan komposisi baru dan f.op. blok sehingga memungkinkan untuk bermain golf yang menarik.
(=>:@.split)
seharusnya bekerja tetapi tidak :(sumber
MATL,
14124 byteCobalah di MATL Online (tautan memiliki modifikasi di bagian akhir untuk menunjukkan dimensi array sel keluaran).
Penjelasan
sumber
CJam, 5 byte
Penjelasan:
sumber
Ruby menggunakan '-n', 17 + 1 = 18 byte
Bagaimana itu bekerja
*$*
percikan string dan kita dapat menggunakannya sebagai parameter untuksplit
fungsichomp
tetapi solusi lain sepertinya lebih lama dari ini.sumber
Rebol, 33 byte
sumber
GNU sed , 48 +1 (r flag) = 49 byte
Cobalah online!
Sed tidak ada tipe data, tetapi representasi alami dari daftar akan menjadi kumpulan garis. Dengan demikian, format input terdiri dari catatan DSV masing-masing pada baris yang terpisah, dengan pembatas hadir pada baris pertama.
Penjelasan: menurut desain, sed menjalankan skrip sebanyak yang ada baris input
sumber
REXX, 95 byte
Mengambil nama file dan pembatas sebagai argumen, isi file diletakkan di batang
o
.sumber
APL (Dyalog) , 4 byte
Dalam versi hingga dan termasuk 15.0, ini kebutuhan
⎕ML←3
yang standar oleh banyak orang. Dari versi 16.0⊂
bisa diganti dengan⊆
untuk efek yang sama.Mengambil pemisah sebagai argumen kiri dan DSV sebagai argumen kanan.
Cobalah online!
≠
ketidaksetaraan (argumen kiri dan argumen kanan)⊂¨
partisi masing-masing⊢
argumen yang benarDengan partisi berarti untuk menghapus semua elemen yang ditunjukkan oleh nol yang sesuai dalam argumen kiri, dan memulai partisi baru setiap kali angka yang sesuai dalam argumen kiri lebih besar dari pendahulunya, yaitu pada setiap elemen jika argumen kiri adalah Boolean, seperti yang terjadi di sini.
sumber
R, 8 byte (2 cara)
R memiliki dua fungsi bawaan yang memenuhi persyaratan tantangan ini:
mengambil vektor string dan pemisah, dan mengembalikan daftar vektor string yang dipisahkan.
mengambil nama file dan pemisah, dan mengembalikan bingkai data. Secara teknis ini mungkin 10 byte karena membutuhkan opsi
header=F
sehingga tidak akan membaca elemen pertama sebagai nama kolom. Saat ini tautan TIO dibaca dari stdin.Coba ini secara online!
sumber