Поиск индекса элемента во вложенном списке - PullRequest
0 голосов
/ 17 апреля 2020

Нужно найти индекс элемента во вложенном l oop.

table = [
    [1, "Y", 3],
    [4, 5, "K"]
]      
for i in range(len(table[0])):
    for j in range(len(table)):
        print(table[i].index("Y"))`

Но каждый раз, когда я запускаю код, он говорит, что Y нет в моем списке

Ответы [ 2 ]

3 голосов
/ 17 апреля 2020

Вам не нужно вложенное l oop. Вы можете l oop через строки и вызвать index() в строке. Вы можете поймать ошибку, которая произойдет, когда Y нет в списке. Это Python стиль запроса прощения вместо разрешения :

for row in table:
    try:
        print(row.index("Y"))
    except ValueError:
        pass

Если вы просто хотите узнать, находится ли «Y» в таблице, вы можете использовать any():

any('Y' in row for row in table)
# True
1 голос
/ 17 апреля 2020

Ваш внутренний l oop не имеет никакого смысла; index уже охватывает весь список; зачем вам это делать 3 раза?

Вы получите сообщение об ошибке, если элемент не появится. Вместо этого

for i in range(len(table)):
    if 'Y' in table[i]:
        print(i, table[i].index('Y'))

Для каждой строки вы проверяете, появляется ли Y. Если это так, то вы печатаете номер строки и столбца, где он появляется.

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