Python มีฟังก์ชัน defaultdict ที่จัดกลุ่มสมาชิก Python tuple ตามสมาชิกตัวแรก
ตัวอย่าง
lst = [
(1, 'Hello', 'World', 112),
(2, 'Hello', 'People', 42),
(2, 'Hi', 'World', 200)
]
from collections import defaultdict
d = defaultdict(list)
for k, *v in lst:
d[k].append(v)
print(d)
ผลลัพธ์
defaultdict(, {1: [['Hello', 'World', 112]], 2: [['Hello', 'People', 42], ['Hi', 'World', 200]]})
คุณสามารถแปลงกลับเป็น tuples พร้อมรักษาการจัดกลุ่มโดยใช้เมธอด tuple(d.items())
ตัวอย่าง
print(tuple(d.items()))
ผลลัพธ์
((1, [['Hello', 'World', 112]]), (2, [['Hello', 'People', 42], ['Hi', 'World', 200]]))