Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Hợp nhất ma trận theo phần tử cột đầu tiên

Gộp các hàng của ma trận có cùng phần tử đầu tiên (key). Sử dụng setdefault() và list comprehension.

Mã nguồn

my_list = [[41, "python"], [13, "pyt"], [41, "is"], [4, "always"], [3, "fun"]]
print("Ma trận gốc:", my_list)

my_result = {}
for key, value in my_list:
    my_result.setdefault(key, []).append(value)

# Chuyển dict về list: [key, value1, value2, ...]
my_result = [[key] + value for key, value in my_result.items()]

print("Ma trận sau gộp:", my_result)

Kết quả

Ma trận gốc: [[41, 'python'], [13, 'pyt'], [41, 'is'], [4, 'always'], [3, 'fun']]
Ma trận sau gộp: [[41, 'python', 'is'], [13, 'pyt'], [4, 'always'], [3, 'fun']]

Giải thích

  • Duyệt từng hàng: unpack thành key, value (giả sử mỗi hàng 2 phần tử).
  • my_result.setdefault(key, []) tạo list rỗng cho key mới.
  • .append(value) gom value theo key.
  • Kết quả dict: {41: ['python', 'is'], 13: ['pyt'], 4: ['always'], 3: ['fun']}.
  • List comprehension [[key] + value ...] chuyển về dạng ma trận.

Ứng dụng

Gom nhóm dữ liệu theo key (group by key) dạng ma trận, tương tự GROUP_CONCAT trong SQL.