2015-06-09 3 views
5

У меня есть списокнахождение индекса нескольких элементов в списке

myList = ["what is your name", "Hi, how are you", 
      "What about you", "How about a coffee", "How are you"] 

Теперь я хочу, чтобы искать индекс все возникновения "How" и "what". Как я могу это сделать на питоническом пути?

+0

Что делать, если '' How' или какое 'появляется более чем один раз в строке? А как насчет чувствительности к регистру? – thefourtheye

ответ

3

Звучит как однострочный Python в состоянии сделать!

[i for i, j in enumerate(myList) if 'how' in j.lower() or 'what' in j.lower()] 
+1

Кто-нибудь действительно пробовал это? Это должно быть 'j.lower()', i - индекс, правильно? –

+0

@ lord63.j Yup, мой плохой. Забыл изменить его, когда я впервые изменил '[j для ...' to '[i for ...' – TerryA

1

Это будет работать, но предполагает, что вы не заботитесь о чувствительности к регистру:

myList = ["what is your name","Hi, how are you","What about you","How about a coffee","How are you"] 
duplicate = "how are you" 
index_list_of_duplicate = [i for i,j in enumerate(myList) if duplicate in j.lower()] 
print index_list_of_duplicate 
    [1,4] 
+0

Он хотел индексы, поэтому он должен быть '[j для i, j ...]';) – TerryA

+0

no , 'j' - это запись в список,' i' - это номер из 'enumerate' – Mathias711

+0

Ой, глупый. Это то, что происходит, когда вы не были вокруг python для возрастов – TerryA

Смежные вопросы