Как вернуть элементы, использующие для l oop внутри функции? - PullRequest
0 голосов
/ 27 марта 2020

Ниже приведен список строк, из которых я пытаюсь найти строки, которые содержат подстроку. Вывод получается отлично без использования функций. Однако при использовании функции она возвращает только 1 подстроку, а не список строк, содержащих подстроку.

L = ['dog', 'dodge', 'cat', 'cattle']

sub_string = str(input("Enter the substring: "))

for i in range(len(L)):
    v = L[i].find(sub_string, 0,100)
    if v >= 0:
        print(L[i])           #returns all the strings containing the substring very well.

def String_find(sub_string):
    for i in range(len(L)):
        if sub_string in L[i]:         
            return L[i]        #returns only 'dog' or 'cat' if substring is entered whereas 
                               #'dog','dodge' 
                               #or 'cat','cattle' is expected.

Total = String_find(sub_string)
#Output is obtained perfectly without using functions however when function is used it does return         
#only 1 substring and not the list of strings containing the substring.

1 Ответ

3 голосов
/ 27 марта 2020

Возможно, вы захотите сделать это:

def string_find(sub):
    return [item for item in L if sub in item]

items = string_find(sub_string)
print(items)
...