Python находит индекс элемента в списке, где некоторые столбцы не важны - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть список в Python, который похож на следующий пример: a = [[1,2,'aaa'] , [3,4,'nnnn']

Как я могу получить индекс [1,2, 'aaa'], просто сказав [1,2, *] в каком * означает не важно?Другими словами, я хочу получить индексы элементов, где их первый столбец равен 1, а их второй столбец равен 2, а значение третьего столбца не имеет значения.

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Как насчет простой и простой петли?

a = [[1,2,'aaa'] , [3,4,'nnnn']
for i, item in enumerate(a):
    if item[0] == 1 and item[1] == 2:
    print(i)
    break
0 голосов
/ 04 февраля 2019

Вы можете использовать operator.itemgetter для расширяемого решения:

from operator import itemgetter

a = [[1,2,'aaa'] , [3,4,'nnnn']]
getter = itemgetter(0, 1)  # get first and second items
indices = [idx for idx, item in enumerate(a) if getter(item) == (1, 2)]  # [0]
0 голосов
/ 04 февраля 2019

Вы можете использовать расширенную итеративную распаковку :

a = [[1, 2, 'aaa'], [3, 4, 'nnnn']]

indices = [i for i, (first, second, *_) in enumerate(a) if (first, second) == (1, 2)]
print(indices)

Вывод

[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...