Hướng dẫn python groupby list of objects - python nhóm theo danh sách các đối tượng
Đây là hai trường hợp. Cả hai đều yêu cầu nhập khẩu sau: Show
Bạn sẽ sử dụng itertools.groupby và adyer.attrgetter hoặc toán tử.itemgetter. Cho một tình huống bạn đang nhóm theo 0:
Cho 1:
Lưu ý rằng bạn cần sắp xếp vì 2 tạo ra một nhóm mới khi giá trị của khóa thay đổi.Lưu ý rằng bạn có thể sử dụng điều này để tạo một 3 như câu trả lời của S.Lott, nhưng không phải sử dụng 4.Sử dụng sự hiểu biết từ điển (chỉ hoạt động với Python 3+ và có thể là Python 2.7 nhưng tôi không chắc chắn):
Đối với các phiên bản trước của Python, hoặc như một sự thay thế ngắn gọn hơn: Gần đây tôi đã gặp phải một vấn đề mà tôi phải nhóm các đối tượng của một danh sách duy nhất theo giá trị của một thuộc tính của các đối tượng này. Sau khi thử một số điều, tôi đã giải quyết chức năng 5 từ mô -đun 6.Hãy xem xét ví dụ sau, chúng tôi có một lớp chữ cái với hai thuộc tính: một chuỗi để chỉ định ký tự và boolean để chỉ định chữ cái là nguyên âm hay không. Chúng tôi muốn nhóm các đối tượng thư dựa trên thuộc tính 7 của họ.Lớp này trông như sau, 8 chỉ ở đó để có một biểu diễn chuỗi gọn gàng khi sau đó chúng ta in ra các đối tượng.
Tiếp theo chúng tôi tạo một danh sách với các đối tượng chữ cái. Không phải toàn bộ bảng chữ cái, các chữ cái đầu tiên sẽ làm.
Bây giờ chúng tôi nhóm danh sách 9 của chúng tôi chứa các đối tượng 0 dựa trên giá trị của thuộc tính 1 của chúng. Nhóm này được thực hiện bởi chức năng chính mà chúng tôi chuyển sang 5 như một đối số thứ hai, bản thân danh sách là đối số đầu tiên.
Một gotcha là danh sách, hoặc bất kỳ điều gì khác, cần phải được sắp xếp trước khi chuyển nó đến hàm 5. Nếu không, các nhóm của bạn kết thúc với một kết quả phân đoạn. Để minh họa xem ví dụ sau đây khi phân loại được nhận xét. Như bạn thấy 5 làm cho các nhóm liên tiếp.
Toàn bộ mẫu mã của chúng tôi trông giống như:
Tôi có thể nhóm một danh sách trong Python không?Trong Python, bạn có thể nhóm các yếu tố liên tiếp có cùng giá trị trong một đối tượng có thể lặp lại như một danh sách với itertools.groupby ().you can group consecutive elements of the same value in an iterable object such as a list with itertools. groupby() .
Làm thế nào để bạn nhóm các mục tương tự với một danh sách trong Python?Phương thức Groupby sẽ nhóm tất cả các chuỗi tương tự thành một đối tượng ITER ... Khởi tạo danh sách các chuỗi .. Nhập mô -đun Itertools .. Khởi tạo một danh sách trống .. Bây giờ, chuyển các chuỗi và chức năng Lambda cho itertools..... Hàm Lambda sẽ trả về phần đầu tiên của chuỗi sau khi chia nó bằng -. Đối tượng nhóm trong Python là gì?Các nhóm là cơ chế container mà các tệp HDF5 được tổ chức.Từ góc độ Python, họ vận hành hơi giống như từ điển.Trong trường hợp này, các phím của người Viking là tên của các thành viên trong nhóm và các giá trị của người dùng là các đối tượng của các thành viên (nhóm và tập dữ liệu).the container mechanism by which HDF5 files are organized. From a Python perspective, they operate somewhat like dictionaries. In this case the “keys” are the names of group members, and the “values” are the members themselves ( Group and Dataset ) objects. |