Вот пример обхода двумерного массива и извлечения значений индекса для элементов, которые соответствуют критериям.
Пара замечаний:
- Я использовал произвольные данные примера, так как вы не включили подробности о значениях, с которыми вы имеете дело
- Я продемонстрировал обработку дублированных значений в двумерном массиве. В зависимости от ваших предположений, вам может потребоваться настроить логи c (например, обработка дубликатов в
words_to translate
, возможно, вы использовали list.index()
, потому что заботитесь только о первом экземпляре, например c.)
import collections
words_list2d = [
['here', 'are', 'example'],
['words', 'in', 'a'],
['2d', 'array', 'with'],
['duplicate', 'words', 'duplicate'],
]
words_to_translate = ['example', 'array', 'duplicate', 'words']
word_indexes = collections.defaultdict(list)
for row_index, row in enumerate(words_list2d):
for value_index, value in enumerate(row):
for word in words_to_translate:
if word == value:
word_indexes[word].append((row_index, value_index))
break
for word in word_indexes:
print(f"{word}: {word_indexes[word]}")
Вывод:
$ python3 find_words_in_2d_array.py
example: [(0, 2)]
words: [(1, 0), (3, 1)]
array: [(2, 1)]
duplicate: [(3, 0), (3, 2)]