Cả Erlang và Ruby đều có chức năng làm phẳng mảng. Có vẻ như một công cụ đơn giản và hữu ích để thêm vào một ngôn ngữ. Người ta có thể làm điều này:
>>> mess = [[1, [2]], 3, [[[4, 5]], 6]]
>>> mess.flatten()
[1, 2, 3, 4, 5, 6]
Hoặc thậm chí:
>>> import itertools
>>> mess = [[1, [2]], 3, [[[4, 5]], 6]]
>>> list(itertools.flatten(mess))
[1, 2, 3, 4, 5, 6]
Thay vào đó, trong Python, người ta phải trải qua khó khăn khi viết một hàm để làm phẳng các mảng từ đầu. Điều này có vẻ ngớ ngẩn với tôi, làm phẳng các mảng là một điều phổ biến để làm. Nó giống như phải viết một hàm tùy chỉnh để nối hai mảng.
Tôi đã Googled điều này không có kết quả, vì vậy tôi đang hỏi ở đây; Có một lý do cụ thể tại sao một ngôn ngữ trưởng thành như Python 3, đi kèm với hàng trăm nghìn pin khác nhau, không cung cấp một phương pháp đơn giản để làm phẳng các mảng? Có ý tưởng bao gồm một chức năng như vậy đã được thảo luận và từ chối tại một số điểm?
extend
nhưng flatten sẽ thanh lịch hơn nhiều. Tuy nhiên, tôi sẽ làm tổn thương nếu mô hình này đủ phổ biến để biện minh cho việc làm phẳng trong thư viện chuẩn.