Извините, если я получу терминологию неправильно - я только начал изучать Python, и я получаю инструкции от друзей, а не на фактическом курсе.Элементы поиска в массиве массивов
Я хочу найти список, содержащий множество массивов, содержащих несколько элементов, и найти массивы с соответствующими элементами, но некоторые разные.
В менее запутывающих условиях, например. У меня есть список массивов, каждый из которых содержит 2 элемента (я думаю, что это называется 2D массив?) Так:
list = [[1, 2], [2, 2], [3, 5], [4, 1], [5, 2], ...]
В моем конкретном примере первые элементы в каждом суб массиве только вознестись линейно, а второй элементы почти случайны. Я хочу найти или отсортировать массивы только по второму числу. Я мог бы просто удалить первый номер из каждого массива:
list = [2, 2, 5, 1, 2 ...]
И затем использовать что-то вроде «если список [х] == 1», чтобы найти «1» и т.д.
(побочное замечание: я не как найти ВСЕ значения, если одно значение повторяется - я не могу вспомнить то, что я написал, но он только найдет первый экземпляр, где значение будет соответствовать, например, он будет обнаруживать первый «2», но не второй или третий)
Но я хочу сохранить первые значения в каждом массиве. Мой друг сказал мне, что вы можете использовать словарь со значениями и ключами, который будет работать для моего примера, но я хочу знать, что будет более общим методом.
Так в моем примере, я надеялся, что, если бы я писал:
if list[[?, x]] == [?, 1]
Тогда бы найти массив, где второе значение массива было 1, (т.е. [4, 1] в моем примере) и не заботятся о первом значении. Очевидно, это не сработало, потому что '?' не является синтаксисом Python, насколько мне известно, но, надеюсь, вы можете видеть, что я пытаюсь сделать?
Таким образом, для более общем случае, если у меня был список из 5 мерных массивов, и я хотел найти второе и четвертое значение каждого массива, я бы написать:
if list[[?, x, ?, y, ?]] == [?, a, ?, b, ?]
И это будет соответствовать любому массив, где значение второго элемента было «a», а значение четвертого - «b».
например. [3, a, 4, b, 7], [20, a, 1, b, 9], ['cat', a, 'dog', b, 'fish'] и т. Д. Все возможные результаты, команда.
Так что я хочу знать, есть ли какой-либо аналогичный способ использования вопросительного знака (но это действительно работает), чтобы обозначить, что элемент в массиве может иметь любое значение.
Что вы подразумеваете под «array»: Python 'array.array', Python' list' или 'numpy.ndarray'? – Evert
«Я думаю, это называется 2D-массив?» Здесь я бы назвал это списком списков. Используйте 'numpy', если вам нужны более правильные 2D-массивы. – Evert
И еще одна команда: * никогда * не используйте встроенные ключевые слова для имен переменных (т. Е. Не используйте здесь 'list' в качестве переменной). – Evert