2016-10-24 3 views
-5
def abc(a, b): 
    '''(str, str) -> list of int 

>>> abc('ABCDEAADFET', 'ABCDE') 
[0,1,2,3,4,5] 
>>> abc('ABCDEAADFEABCDET', 'ABCDE') 
[0,1,2,3,4,10,11,12,13,14] 
>>> abc('SDFECAADFET', 'ABCDE') 
[] 


# how to do this ? especially the second case 
# use a.find.() 
+0

>>> а ('ABCDEAADFET', 'ABCDE') [0,1,2,3,4,5] – Jarin

+0

>>> а ('ABCDEAADFEABCDET', ' ABCDE ') [0,1,2,3,4,10,11,12,13,14] – Jarin

+0

Это то же самое, что и ваш последний вопрос? http://stackoverflow.com/questions/40224680/how-to-make-a-function-return-a-list-of-indices-of-the-characters-in-the-second/40225024?noredirect=1# comment67714826_40225024 –

ответ

-1

Простой способ сделать это будет путем создания функции, как:

def my_function(my_string, my_substring): 
    len_substring = len(my_substring) 
    my_index = [] 
    for i in range(len(my_string)-len_substring+1): 
     if my_string[i:i+len_substring] == my_substring: 
      my_index.extend(range(i, i+len_substring)) 
    return my_index 

Объяснение:

Итерации вашу строку для проверки соответствия подстроки. Если есть совпадение, добавьте соответствующие индексы в список.

Образец Run:

>>> my_function('ABCDEAADFET', 'ABCDE') 
[0, 1, 2, 3, 4] 
>>> my_function('ABCDEAADFEABCDET', 'ABCDE') 
[0, 1, 2, 3, 4, 10, 11, 12, 13, 14] 
>>> my_function('SDFECAADFET', 'ABCDE') 
[] 
Смежные вопросы