Как вы узнаете, где все элементы x находятся в n-мерном списке любой формы или размера? (Пример: [1, 2, [3, [1]] ...])Python - Поиск местоположения всех элементов x в n-мерном списке
Это код, который я придумал для нахождения первого пункта: (не сильно проверено)
def where(x, inputList):
return _where(x, inputList, [])
def _where(value, inputList, dimension):
if isinstance(inputList, list):
i = 0
for l in inputList:
dimension.append(i)
D = _where(value, l, dimension)
if not D == None:
return D
i += 1
del dimension[-1]
return None
else:
if value == inputList:
return dimension
else:
return None
это рекурсивно проверяет каждый элемент в списке, и, когда он находит правильный он возвращает размер или координаты этого элемента
Желаемая ввода/вывода Пример:
x = 1
inputlist = [1, [2, 21], [1]]
o = where_All(x, inputlist)
# o is [[0], [2, 0]]
print inputlist[0] # is 1
print inputlist[2][0] # is 1
вывода представляет собой список координат для каждый из них em в списке, который равен x
Пожалуйста, укажите желаемый вход/выход в свой вопрос. Неправильный ответ на ваш код? если ваш код работает, вы можете попросить его на [codereview] (http://codereview.stackexchange.com/). – wizzup
Взгляните на [этот ответ] (http://stackoverflow.com/a/41778581/4014959). Он может обрабатывать любую комбинацию вложенных списков и словарей и может находить все соответствующие элементы, а не только первый. Если вам не нужно обрабатывать словари, вы можете легко упростить код. –
@wizzup Jökull хочет найти _all_ соответствующие элементы во вложенном списке. Текущий код находит только первый. –