Чтобы найти в списке списков Python определенное значение и вернуть его индекс, вы можете использовать различные методы. Позвольте мне объяснить несколько разных подходов:
- Вложенные циклы. Вы можете перебирать каждый подсписок, используя вложенные циклы, и сравнивать целевое значение с каждым элементом. Когда совпадение найдено, верните соответствующие индексы. Вот пример:
def search_list_of_lists(lst, target):
for i, sublist in enumerate(lst):
for j, value in enumerate(sublist):
if value == target:
return i, j
return -1, -1 # Return -1 if the value is not found
# Example usage
my_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
target_value = 5
result = search_list_of_lists(my_list, target_value)
print(result) # Output: (1, 1)
- Понимание списка: вы можете использовать понимание списка для достижения аналогичного результата. Этот подход возвращает список индексов, соответствующих целевому значению.
def search_list_of_lists(lst, target):
return [(i, j) for i, sublist in enumerate(lst) for j, value in enumerate(sublist) if value == target]
# Example usage
my_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
target_value = 5
result = search_list_of_lists(my_list, target_value)
print(result) # Output: [(1, 1)]
- Библиотека NumPy: если у вас установлен NumPy, вы можете использовать его мощные функции манипулирования массивами для эффективного выполнения операции поиска. Вот пример:
import numpy as np
def search_list_of_lists(lst, target):
arr = np.array(lst)
indices = np.argwhere(arr == target)
return [(index[0], index[1]) for index in indices]
# Example usage
my_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
target_value = 5
result = search_list_of_lists(my_list, target_value)
print(result) # Output: [(1, 1)]