2011-09-09 4 views

ответ

163

с in: substring in string:

>>> substring = "please help me out" 
>>> string = "please help me out so that I could solve this" 
>>> substring in string 
True 
+10

Гоша питона является слишком сильным, я думаю, что она нуждается в функции, чтобы сделать это, но это встроенный в одном Оо – windsound

+0

Я просто на самом деле изучал JS после изучения Python, для этого вам нужно было бы добавить множество выражений if else и других вещей. Итак, я просто хотел напомнить себе, как это делается на Python, этот ответ заставил меня сказать себе «Конечно!», Я имею в виду такие вещи, как это на Python, настолько тривиальны, что вы никогда их не задумываетесь! : P –

+0

@GamesBrainiac На самом деле, чтобы сделать то же самое в JS, это просто 'string.indexOf (подстрока)! = -1', больше [здесь] (http: // stackoverflow.com/questions/1789945/how-can-i-check-if-one-string-contains-another-substring-in-javascript) – Deviljho

1
In [7]: substring = "please help me out" 

In [8]: string = "please help me out so that I could solve this" 

In [9]: substring in string 
Out[9]: True 
20
foo = "blahblahblah" 
bar = "somethingblahblahblahmeep" 
if foo in bar: 
    # do something 

(Кстати - стараются не называть переменную string, так как стандартная библиотека Python с тем же именем, Вы могли бы сбить людей с толку. если вы делаете это в большом проекте, избегайте таких столкновений, как хорошая привычка.)

+0

Не только путайте, но и разбивайте все ссылаясь на строку после этой точки. – rplnt

13

Если вы ищете больше, чем True/Fal как таковые, вы бы лучше всего подходит для использования модуля повторно, как:

import re 
search="please help me out" 
fullstring="please help me out so that I could solve this" 
s = re.search(search,fullstring) 
print(s.group()) 

s.group() возвращает строку «Пожалуйста, помогите мне».

+1

Хороший совет о поиске регулярных выражений. –

+0

на зажигалке. если вы пытаетесь решить что-то с регулярным выражением, вы пытаетесь решить две проблемы. –

5

Вы также можете попробовать найти() метод. Он определяет, существует ли строка str в строке или в подстроке строки.

str1 = "please help me out so that I could solve this" 
str2 = "please help me out" 

if (str1.find(str2)>=0): 
    print("True") 
else: 
    print ("False") 
8

Люди упомянули string.find(), string.index() и string.indexOf() в комментариях, и я суммировать их здесь (в соответствии с Python Documentation):

Прежде всего не string.indexOf() метод. Ссылка, размещенная Deviljho, показывает, что это функция JavaScript.

Во-вторых, string.find() и string.index() фактически возвращают индекс подстроки. Единственное различие заключается в том, как они обрабатывают подстроку, не найденную: string.find() возвращает -1, а string.index() поднимает ValueError.

9

Мысль я хотел бы добавить, это в случае, если вы смотрите на то, как сделать это для технического интервью, в котором они не хотят, чтобы использовать встроенную функцию Питона in или find, которая ужасно, но случается:

string = "Samantha" 
word = "man" 

def find_sub_string(word, string): 
    len_word = len(word) #returns 3 

    for i in range(len(string)-1): 
    if string[i: i + len_word] == word: 
    return True 

    else: 
    return False 
+2

Приятный пример, но ваша идентификация неверна. И чтобы ускорить работу, я бы проверял: «Если len (substring)> len (string) возвращает False', также диапазон циклов должен быть лучше« range (len (string) -len (substring)) ', потому что вы не найдете трехбуквенное слово в двух последних строках строки. (Сохраняет несколько итераций). – AnyOneElse

1
def find_substring(): 
    s = 'bobobnnnnbobmmmbosssbob' 
    cnt = 0 
    for i in range(len(s)): 
     if s[i:i+3] == 'bob': 
      cnt += 1 
    print 'bob found: ' + str(cnt) 
    return cnt 

def main(): 
    print(find_substring()) 

main() 
+0

найти подстроку 'bob' в заданной строке. –

0

Можно также использовать этот метод

if substring in string: 
    print(string + '\n Yes located at:'.format(string.find(substring))) 
Смежные вопросы