Во-первых, .append()
с двумя аргументами не сработает. Вы, вероятно, хотели добавить кортеж или список, состоящий из ri
и ei
.
. Также, пожалуйста, не используйте встроенные имена, такие как list
для переменных - это сбивает с толку всех, включаяинтерпретатор.
А что касается эффективного решения вашей проблемы, было бы лучше перебрать list
(здесь values_sought
) не во внешнем -, а во внутреннем цикле, чтобыИзбегайте бессмысленной проверки одних и тех же координат матрицы несколько раз, например:
values_sought = [1, 2, 3]
matrix = [[0,1,2], [3,2,0], [1,2,3]]
coordinates = []
for row_index, row in enumerate(matrix):
if not values_sought: break
for column_index, value_present in enumerate(row):
if not values_sought: break
for value_sought_index, value_sought in enumerate(values_sought):
if value_present == value_sought:
coordinates.append((row_index, column_index))
values_sought.pop(value_sought_index)
break
Значения удаляются из values_sought
после их обнаружения, поэтому вы можете захотеть иметь временный список для этой цели, если вам нужновсе еще имеют эти значения впоследствии.