Ответ 1
indices = [i for i, s in enumerate(mylist) if 'aa' in s]
mylist = ["aa123", "bb2322", "aa354", "cc332", "ab334", "333aa"]
Мне нужна позиция индекса для всех элементов, содержащих "aa". У меня возникли проблемы с объединением enumerate() с частичным сопоставлением строк. Я даже не уверен, должен ли я использовать перечисление.
Мне просто нужно вернуть индексные позиции: 0,2,5
indices = [i for i, s in enumerate(mylist) if 'aa' in s]
Ваша идея использовать enumerate()
была правильной.
indices = []
for i, elem in enumerate(mylist):
if 'aa' in elem:
indices.append(i)
В качестве альтернативы, как понимание списка:
indices = [i for i, elem in enumerate(mylist) if 'aa' in elem]
Без enumerate()
:
>>> mylist = ["aa123", "bb2322", "aa354", "cc332", "ab334", "333aa"]
>>> l = [mylist.index(i) for i in mylist if 'aa' in i]
>>> l
[0, 2, 5]