Как найти максимальное расстояние между двумя одинаковыми элементами / целыми числами в списке в python. например, если список равен [1,3,3,5,6,4,8,6,0,3,5] Вывод будет 8 (расстояние ч / б 3 здесь максимально)
[1,3,3,5,6,4,8,6,0,3,5]
8
Вы можете использовать словарь, в котором для каждого значения сохраняются индексы.
from collections import defaultdict d = defaultdict(list) for i,el in enumerate(l): d[el].append(i) max_dist = max(d[k][-1]-d[k][0] for k in d)
Использование numpy (медленнее, чем решение ab c):
import numpy as np L = [1,3,3,5,6,4,8,6,0,3,5] x, y = np.meshgrid(L, L) w = np.where(x == y) max_dist = np.max(w[1] - w[0])