Giả sử tôi có một số danh sách các cặp (int, str), không nhất thiết phải có cùng độ dài. Ràng buộc duy nhất ở đây là danh sách đều được sắp xếp theo thứ tự tăng dần theo phần nguyên của họ:Lặp lại qua nhiều danh sách được sắp xếp theo thứ tự
a = [(1, 'a'), (4, 'a'), (6, 'b'), (7, 'c'), (12, 'a')]
b = [(5, 'd'), (10, 'c'), (11,'e')]
c = [(0, 'b'), (3, 'd')]
Những gì tôi muốn làm là để phát ra các yếu tố chuỗi theo thứ tự, trong đó yếu tố số nguyên tương ứng của họ xảy ra tức là trong này trường hợp:
(0, 'b'), (1, 'a'), (3, 'd'), (4, 'a'), ...
tôi tự hỏi nếu có một rõ ràng (đẹp + pythonic) cách để làm điều này chỉ sử dụng vòng lặp của a
, b
và c
? Tôi đã xem itertools
nhưng không thể thấy ngay cách sử dụng chức năng trong trường hợp này. Các danh sách a
, b
, c
có thể là rất lớn vì vậy tôi muốn làm điều này mà không cần đọc chúng vào bộ nhớ và sau đó sắp xếp ...
Không có cách nào để làm điều đó mà không đọc tất cả. Nếu bạn không đọc tất cả, bạn không thể biết được cái bạn chưa đọc có thực sự xuất hiện trước không. Ngoài ra, nếu chúng là danh sách, chúng vẫn còn trong bộ nhớ. – BrenBarn