Tôi có một danh sách phẳng các đối tượng duy nhất, một số trong đó có thể chia sẻ một thuộc tính nhất định với những đối tượng khác. Tôi muốn tạo danh sách liệt kê lồng nhau, với các đối tượng được nhóm theo thuộc tính đã cho. Như một ví dụ nhỏ, đưa ra danh sách sau đây:Giữ một danh sách phẳng dựa trên tiêu chí tùy ý
>>> flat = ["Shoes", "pants", "shirt", "tie", "jacket", "hat"]
tôi có thể muốn để nhóm nó theo chiều dài, ví dụ:
>>> nest_by_length(flat)
[['tie', 'hat'], ['shoes', 'pants', 'shirt'], ['jacket']]
Tôi đã nhìn thấy một vài similarquestions và suggestions. Tuy nhiên, trong tất cả các trường hợp này, lồng nhau được dựa trên thứ tự của danh sách đầu vào. Trong trường hợp của tôi, thứ tự của danh sách đầu vào là hoàn toàn không thể đoán trước, cũng như số lượng các danh sách con cho đầu ra và số lượng các mục cho mỗi danh sách con.
Có chức năng tiêu chuẩn hoặc cách thành ngữ để thực hiện việc này không?
Tôi đánh giá cao sự thông suốt của bạn. Tôi nghi ngờ sẽ có một số chức năng như groupby mà tôi không biết, nhưng thủ thuật từ điển chỉ là thông minh. Cảm ơn! – Joe