Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để nhóm các phần tử tuple trong Python theo phần tử đầu tiên của chúng?


Python có một hàm được gọi là defaultdict để nhóm các phần tử tuple Python theo phần tử đầu tiên của chúng.

Ví dụ

 lst =[(1, 'Xin chào', 'Thế giới', 112), (2, 'Xin chào', 'Mọi người', 42), (2, 'Xin chào', 'Thế giới', 200)]  

từ bộ sưu tập nhập lệnh mặc định

 d =defaultdict (danh sách) cho k, * v trong lst:d [k] .append (v) print (d) 

Đầu ra

Điều này sẽ cung cấp kết quả

 defaultdict (, {1:[['Hello', 'World', 112]], 2:[['Hello', 'People', 42], ['Hi', ' Thế giới ', 200]]}) 

Bạn có thể chuyển đổi dữ liệu này trở lại thành các bộ giá trị trong khi vẫn giữ nguyên nhóm bằng phương thức tuple (d.items ()).

ví dụ

 print (tuple (d.items ())) 

Đầu ra

Điều này sẽ cung cấp kết quả

 ((1, [['Xin chào', "Thế giới", 112]]), (2, [["Xin chào", "Mọi người", 42], ["Xin chào", "Thế giới", 200]] ))