tôi có một loạt các danh sách được sắp xếp của các đối tượng, và một hàm so sánhMerge danh sách được sắp xếp trong python
class Obj :
def __init__(p) :
self.points = p
def cmp(a, b) :
return a.points < b.points
a = [Obj(1), Obj(3), Obj(8), ...]
b = [Obj(1), Obj(2), Obj(3), ...]
c = [Obj(100), Obj(300), Obj(800), ...]
result = magic(a, b, c)
assert result == [Obj(1), Obj(1), Obj(2), Obj(3), Obj(3), Obj(8), ...]
những gì hiện magic
cái nhìn như thế nào? Triển khai hiện tại của tôi là
def magic(*args) :
r = []
for a in args : r += a
return sorted(r, cmp)
nhưng điều đó không hiệu quả. Câu trả lời tốt hơn?
Là a, b, c được sắp xếp? – Drakosha
Nếu chúng là: http://stackoverflow.com/questions/464342/combining-two-sorted-lists-in-python – Drakosha
Các danh sách đó lớn bao nhiêu? Mất bao nhiêu thời gian để phân loại chúng? Đo lường trước (và sau) bạn tối ưu hóa. –