Gộp 2 list bất kỳ và sắp xếp kết quả. Python hỗ trợ toán tử + cho list và method sort() (in-place) hoặc function sorted() (trả list mới).
Ví dụ 1: List số nguyên
list_1 = [1, 3, 2, 0, 3] list_2 = [20, 10, 23, 43, 56, -1] merged = list_1 + list_2 merged.sort() print(merged)
Kết quả
[-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]
Ví dụ 2: List chuỗi (sắp xếp lexicographic)
list_1 = ["hafeez", "aslan"] list_2 = ["abc", "kareem", "b"] merged = list_1 + list_2 merged.sort() print(merged)
Kết quả
['abc', 'aslan', 'b', 'hafeez', 'kareem']
Các biến thể
| Cách | Code | Đặc điểm |
|---|---|---|
| In-place sort | merged = list_1 + list_2; merged.sort() | Sửa đổi merged, trả về None |
| Tạo list mới | merged = sorted(list_1 + list_2) | Giữ nguyên list_1, list_2 |
| Sắp xếp ngược | merged.sort(reverse=True) hoặc sorted(..., reverse=True) | Giảm dần |
| Custom key | merged.sort(key=len) (theo độ dài chuỗi) | Linh hoạt |
Hiệu năng
- Gộp list: O(n+m) tạo list mới.
- Sort: Timsort O((n+m) log(n+m)).
- Nếu 2 list đã sort sẵn: dùng
heapq.mergeO(n+m) tốt hơn.
Kết luận
list_1 + list_2 gộp, .sort() hoặc sorted() sắp xếp. Đơn giản, hiệu quả cho list kích thước vừa. Với list đã sort, dùng heapq.merge.