Сравнить два списка в python и вернуть индексы согласованных значений Для двух списков a и b, как я могу получить индексы значений, которые появляются в обоих? Например, a = [1, 2, 3, 4, 5] b = [9, 7, 6, 5, 1, 0] return_indices_of_a(a, b) вернет [0,4], с (a[0],a[4]) = (1,5). Ответ 1 Лучший способ сделать это - сделать b a set, поскольку вы проверяете только членство внутри него. >>> a = [1, 2, 3, 4, 5] >>> b = set([9, 7, 6, 5, 1, 0]) >>> [i for i, item in enumerate(a) if item in b] [0, 4] Ответ 2 def return_indices_of_a(a, b): b_set = set(b) return [i for i, v in enumerate(a) if v in b_set] Ответ 3 Для более крупных списков это может помочь: for item in a: index.append(bisect.bisect(b,item)) idx = np.unique(index).tolist() Обязательно импортируйте numpy.
Ответ 1 Лучший способ сделать это - сделать b a set, поскольку вы проверяете только членство внутри него. >>> a = [1, 2, 3, 4, 5] >>> b = set([9, 7, 6, 5, 1, 0]) >>> [i for i, item in enumerate(a) if item in b] [0, 4]
Ответ 2 def return_indices_of_a(a, b): b_set = set(b) return [i for i, v in enumerate(a) if v in b_set]
Ответ 3 Для более крупных списков это может помочь: for item in a: index.append(bisect.bisect(b,item)) idx = np.unique(index).tolist() Обязательно импортируйте numpy.