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

Tạo danh sách hợp nhất và sắp xếp từ 2 list không sắp xếp trong Python

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áchCodeĐặc điểm
In-place sortmerged = list_1 + list_2; merged.sort()Sửa đổi merged, trả về None
Tạo list mớimerged = sorted(list_1 + list_2)Giữ nguyên list_1, list_2
Sắp xếp ngượcmerged.sort(reverse=True) hoặc sorted(..., reverse=True)Giảm dần
Custom keymerged.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.merge O(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.