Đối với hai danh sách,danh sách phù hợp trong python: có được chỉ số của một danh sách phụ trong một danh sách lớn hơn
a = [1, 2, 9, 3, 8, ...] (no duplicate values in a, but a is very big)
b = [1, 9, 1,...] (set(b) is a subset of set(a), 1<<len(b)<<len(a))
indices = get_indices_of_a(a, b)
làm thế nào để chúng ta hãy trở lại get_indices_of_a
indices = [0, 2, 0,...]
với array(a)[indices] = b
? Có phương pháp nhanh hơn sử dụng a.index
, quá lâu không?
Đặt b
một tập hợp là một phương pháp nhanh chóng kết hợp danh sách và chỉ mục quay lại (xem compare two lists in python and return indices of matched values), nhưng nó sẽ mất chỉ mục của số 1
thứ hai cũng như chuỗi chỉ số trong trường hợp này.
+1. Đây là một câu trả lời hay cho các danh sách lớn, nơi nó sẽ giảm đáng kể thời gian cần thiết - một cách tự nhiên trên các danh sách nhỏ việc tạo ra dict sẽ mất nhiều thời gian hơn nó sẽ tiết kiệm được. Với nhận xét của người hỏi về câu trả lời của tôi, có vẻ như các danh sách lớn có liên quan, vì vậy đây là câu trả lời mong muốn. –