Я постоянно создаю случайно сгенерированный список, New_X
размера 10, на основе 500 столбцов.Эффективный способ поиска в списке списков?
Каждый раз, когда я создаю новый список, он должен быть уникальным, и моя функция NewList
возвращает только New_X
, когда он еще не был создан и прилагаемое к List_Of_Xs
def NewList(Old_List):
end = True
while end == True:
""" Here is code that generates my new sorted list, it is a combination of elements
from Old_List and the other remaining columns,
but the details aren't necessary for this question. """
end = (List_Of_Xs == np.array([New_X])).all(axis=1).any()
List_Of_Xs.append(New_X)
return New_X
Мой вопрос, является line end = (List_Of_Xs == np.array([New_X])).all(axis=1).any()
эффективный способ посмотреть в List_Of_Xs
?
Мой List_Of_Xs
может вырасти до размера более 100 000 списков, поэтому я не уверен, что это неэффективно или нет.
Любая помощь будет оценена!
Итак, это 'List_Of_Xs' список списков с 10 элементами в списке? Являются ли эти элементы целыми? Есть ли верхняя и нижняя граница этих ints? – Divakar
Я бы сделал 'New_X' кортеж и проверил, находится ли он в наборе' Set_of_Xs'. Особенно с небольшим списком из 10 элементов, которые должны быть быстрее, чем при сравнении этого массива. – hpaulj
'List_of_Xs == np.array ([New_X])' не только делает 'New_X' в массив, но он делает это для' List_of_Xs' каждый раз. Создание массива из списка списков не является тривиальной задачей. – hpaulj