Catatan: Ini adalah # 2 dalam serangkaian tantangan manipulasi array . Untuk tantangan sebelumnya, klik di sini .
Memisahkan Daftar Bersarang
Untuk memisahkan nilai dalam daftar bersarang, ratakan, lalu bungkus masing-masing nilai sehingga pada kedalaman yang sama seperti sebelumnya.
Artinya, daftar ini:
[1, [2, 3], [4, 4, [5, 2], 1]]
Akan menjadi:
[1, [2], [3], [4], [4], [[5]], [[2]], [1]]
Tantangan
Tugas Anda adalah menulis sebuah program yang mengambil semua daftar bilangan bulat positif (dalam batas bahasa Anda) dan melakukan operasi pemisahan ini.
Anda dapat mengirimkan fungsi yang menjadikan daftar sebagai argumen, atau program lengkap yang menjalankan I / O.
Karena ini adalah kode-golf , pengiriman terpendek (dalam byte) menang! *
* Lubang golf standar dilarang. Kamu tahu latihannya.
Uji Kasus
Daftar input hanya akan berisi bilangan bulat dalam ukuran bilangan bulat standar bahasa Anda. Untuk menghindari kendala bahasa yang mencegahnya bersaing, nilai tidak akan disarangkan lebih dari 10.
Anda dapat berasumsi bahwa input tidak akan memiliki sub-daftar kosong: misalnya - [[5, []]]
tidak akan diberikan. Namun, daftar utama bisa kosong.
[] -> []
[[1, 2]] -> [[1], [2]]
[3, [4, 5]] -> [3, [4], [5]]
[3, [3, [3]]] -> [3, [3], [[3]]]
[[6, [[7]]]] -> [[6], [[[7]]]]
[[5, 10], 11] -> [[5], [10], 11]
Jangan ragu untuk meninggalkan komentar jika saya melewatkan sudut kotak.
Contoh
Aku melemparkan bersama-sama cepat (ungolfed) Python 3 solusi sebagai contoh - Anda bisa mengujinya pada repl.it .