Как я могу найти каждое вхождение элемента в списке и распечатать его индекс каждого вхождения? - PullRequest
0 голосов
/ 21 марта 2019

Я хочу иметь возможность просматривать список Python и распечатывать индекс каждого вхождения. Пример:

a = ['t','e','s','t']
a.index('t')

Когда я пытаюсь использовать этот код, он дает мне только первый индекс для t , но я хочу, чтобы он распечатывал каждый индекс, в котором использовался t .

Ответы [ 4 ]

2 голосов
/ 21 марта 2019

Вы можете использовать понимание списка с enumerate:

a = ['t','e','s','t']
indices = [i for i, x in enumerate(a) if x == 't']

Внутри понимания списка, i - текущий индекс, а x - значение этого индекса.

1 голос
/ 21 марта 2019

С enumerate внутри Понимание списка для t ,

>>> list1 = ['t','e','s','t']
>>> all_index = [i for i, j in enumerate(list1) if j == 't']
>>> all_index

Вывод:

[0, 3]

С петлей для всех элементов,

list1 = ['t','e','s','t']
result = {}
for e in list1:
    result[e] = [i for i, j in enumerate(list1) if j == e]
print(result)

Выход:

 {'s': [2], 'e': [1], 't': [0, 3]}
0 голосов
/ 21 марта 2019
def get_indices(my_list, item):
    result = []
    for i in range(len(my_list)):
        if my_list[i] == item:
            result.append(i)
    return result

Тогда попробуй ...

>>> get_indices(a, "t")
[0, 3]
0 голосов
/ 21 марта 2019

Да, вы можете сделать это с enumerate

[x[0] for x in enumerate(a) if x[1]=='t']

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