2010-07-14 27 views
5

Tôi không cần sự lười biếng của itertools.groupby. Tôi chỉ muốn nhóm danh sách của tôi thành một danh sách các danh sách như vậy:Con trăn có phiên bản không lười của itertools.groupby không?

dict([(a, list(b)) for a,b in itertools.groupby(mylist, mykeyfunc)]) 

Có chức năng tiêu chuẩn nào đã thực hiện việc này không?

+0

Sự lười biếng có bị tổn thương theo bất kỳ cách nào không? – sth

+0

Về nguyên tắc, một phiên bản không lười biếng có thể hiệu quả hơn - nó làm cho toàn bộ nhóm được thực hiện một lần, tránh các chi phí lười biếng và sử dụng bộ nhớ cache tốt. Mặc dù vậy, tôi sẽ ngạc nhiên nếu nó gây ra cho bạn bất kỳ vấn đề thực sự. Lời khuyên của tôi, bị đánh cắp từ bài hát cũ - "đừng lo lắng hạnh phúc". – Steve314

+0

Đó là một nỗi đau để kiểm tra mã lười trong repl. – dvogel

Trả lời

4

Không, không có chức năng nào được bao gồm trong thư viện chuẩn để thực hiện việc này.

+1

+1 Địa chỉ này chính xác câu hỏi –

-2

Có vẻ như bạn có chức năng một dòng đã thực hiện những gì bạn muốn. Sử dụng nó.

+1

Câu hỏi của tôi không phải là "làm cách nào để làm điều này?" Tôi đang tìm cách tránh tái hiện một hàm chuẩn. – dvogel

Các vấn đề liên quan