Рубрики
Без рубрики

Найти строку в списке в Python

В этой статье мы посмотрим на то, как мы можем найти строку в списке в Python.

Автор оригинала: Pankaj Kumar.

Найти строку в списке в Python

В этой статье мы посмотрим на то, как мы можем найти строку в списке в Python.

Найти строку в списке в Python

Существуют различные подходы к этой проблеме, от простоты использования для эффективности.

Используя оператор ‘in’

Мы можем использовать Python’s в Оператор, чтобы найти строку в списке в Python. Это занимает два операнда А и B и имеет форму:

ret_value = a in b

Здесь Ret_Value это логический, который оценивает Правда Если А лежит внутри B и Ложь иначе.

Мы можем напрямую использовать этот оператор следующим образом:

a = [1, 2, 3]

b = 4

if b in a:
    print('4 is present!')
else:
    print('4 is not present')

Выход

4 is not present

Мы также можем преобразовать это в функцию, для простоты использования.

def check_if_exists(x, ls):
    if x in ls:
        print(str(x) + ' is inside the list')
    else:
        print(str(x) + ' is not present in the list')


ls = [1, 2, 3, 4, 'Hello', 'from', 'AskPython']

check_if_exists(2, ls)
check_if_exists('Hello', ls)
check_if_exists('Hi', ls)

Выход

2 is inside the list
Hello is inside the list
Hi is not present in the list

Это наиболее часто используемый и рекомендуемый способ поиска строки в списке. Но, для иллюстрации, мы покажем вам другие методы.

Использование списка понимание

Давайте возьмем еще один случай, где вы хотите проверить, только ли строка является частью другого слова в списке и возврат Все Такие слова, где ваше слово представляет собой подменю элемента списка.

Рассмотрим список ниже:

ls = ['Hello from AskPython', 'Hello', 'Hello boy!', 'Hi']

Если вы хотите искать подстроку Привет Во всех элементах списка мы можем использовать список списков в следующем формате:

ls = ['Hello from AskPython', 'Hello', 'Hello boy!', 'Hi']

matches = [match for match in ls if "Hello" in match]

print(matches)

Это эквивалентно следующему коду, который просто имеет два цикла и проверки для условия.

ls = ['Hello from AskPython', 'Hello', 'Hello boy!', 'Hi']

matches = []

for match in ls:
    if "Hello" in match:
        matches.append(match)

print(matches)

В обоих случаях выход будет:

['Hello from AskPython', 'Hello', 'Hello boy!']

Как вы можете наблюдать, на выходе все совпадения содержат строку Привет как часть строки. Просто, не так ли?

Использование метода «любой ()»

Если вы хотите проверить наличие входной строки в любой Пункт списка, мы можем использовать любой () метод Чтобы проверить, надеется ли это.

Например, если вы хотите проверить, есть ли « Аскупптон ‘ является частью любого из элементов списка, мы можем сделать следующее:

ls = ['Hello from AskPython', 'Hello', 'Hello boy!', 'Hi']

if any("AskPython" in word for word in ls):
    print('\'AskPython\' is there inside the list!')
else:
    print('\'AskPython\' is not there inside the list')

Выход

'AskPython' is there inside the list!

Использование фильтра и лямбдаса

Мы также можем использовать Фильтр () Метод на лямбда Функция , что является простой функцией, которая определяется только на этой конкретной линии. Подумайте о лямбде как мини-функция, которые не могут быть использованы после звонка.

ls = ['Hello from AskPython', 'Hello', 'Hello boy!', 'Hi']

# The second parameter is the input iterable
# The filter() applies the lambda to the iterable
# and only returns all matches where the lambda evaluates
# to true
filter_object = filter(lambda a: 'AskPython' in a, ls)

# Convert the filter object to list
print(list(filter_object))

Выход

['Hello from AskPython']

У нас есть то, что мы ожидали! Только одна строка соответствует нашей функции фильтра, и это действительно то, что мы получаем!

Заключение

В этой статье мы узнали о том, как мы можем найти строку с помощью списка ввода с разными подходами. Надеюсь, это помогло вам с вашей проблемой!

использованная литература