Наибольшее расстояние в списке целых - PullRequest
2 голосов
/ 12 января 2020

Как найти максимальное расстояние между двумя одинаковыми элементами / целыми числами в списке в python. например, если список равен [1,3,3,5,6,4,8,6,0,3,5] Вывод будет 8 (расстояние ч / б 3 здесь максимально)

Ответы [ 2 ]

3 голосов
/ 12 января 2020

Вы можете использовать словарь, в котором для каждого значения сохраняются индексы.

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)
0 голосов
/ 13 января 2020

Использование 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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...