Я пытаюсь написать простую программу, которая может идентифицировать списки в «списке списков», которые имеют одинаковый «нулевой» элемент.
Моя попытка ниже.
Поскольку моя конструкция рассматривает случаи, когда, например, я = 0, j = 1 и i = 1, j = 0, чтобы отличаться, я заканчиваю печатать вдвое больше списков, чем мне нужно.
Я знаю, что могу использовать list (set (indices_of_repeats)), чтобы удалить дубликаты, но это на самом деле напрямую не решает основную проблему, а именно то, что я хочу понять, как поместить условие в значения, которые мой цикл счетчики (это правильная терминология?) берутся относительно друг друга и не удосуживаются перебирать случаи, когда это условие не выполняется.
Кроме того, я предлагаю любые предложения для более быстрых / более изящных / более питонических способов написания этой программы.
list = [[1,2], [2,3], [4,5], [4,6],[4,7]]
indices_of_repeats = []
for i in range(0,len(list)):
for j in range(0,len(list)):
if list[i][0] == list[j][0] and i !=j:
indices_of_repeats.append(list[i])
print (indices_of_repeats)
EDIT:
Я придумал следующее - это работает, но любые лучшие предложения приветствуются.
list = [[4,5],[1,2], [2,3], [4,6],[4,7]]
repeats = []
for i in range(len(list)):
for j in range(len(list)):
if list[i][0] == list[j][0] and i!=j:
repeats.append(list[i])
break
print (repeats)