Dla dwóch list,lista mecz w Pythonie: uzyskać indeksy sub-listy w większej liście
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)
jak pozwolić get_indices_of_a
zwrot indices = [0, 2, 0,...]
z array(a)[indices] = b
? Czy istnieje szybsza metoda niż użycie a.index
, która trwa zbyt długo?
Making b
zestaw to szybka metoda dopasowywania list i powrocie indeksów (patrz compare two lists in python and return indices of matched values), ale straci indeksu drugiego 1
jak również kolejność indeksów w tej sprawie.
+1. Jest to dobra odpowiedź dla dużych list, gdzie drastycznie skróci to czas - naturalnie na małych listach stworzenie dyktatu zajmie więcej czasu, niż pozwoli zaoszczędzić. Biorąc pod uwagę komentarz pytającego o moją odpowiedź, wydaje mi się, że chodzi o duże listy, więc jest to pożądana odpowiedź. –