πŸ”ΠšΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ поиск Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π³ΠΈΠ΄

Поиск Π² Python осущСствляСтся с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° find для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ index для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

# Поиск подстроки Π² строкС
string = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
substring = "ΠΌΠΈΡ€"
index = string.find(substring)
if index != -1:
    print(f"ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π° Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ {index}")
else:
    print("ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°")
# Поиск элСмСнта Π² спискС
numbers = [1, 2, 3, 4, 5]
element = 3
index = numbers.index(element)
print(f"Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ {index}")

Π’ ΠΎΠ±ΠΎΠΈΡ… случаях, Ссли поиск ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ позиция искомого элСмСнта ΠΈΠ»ΠΈ подстроки. Если поиск Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅Π½, выводится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ поиск Π² Python?

Поиск являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… аспСктов программирования, ΠΈ Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ возмоТностСй для выполнСния поиска Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… коллСкциях Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов поиска Π² Python ΠΈ прСдоставим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Поиск в спискС

Один ΠΈΠ· самых простых способов Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск Π² Python - это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ index(). Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² спискС. Однако, Ссли элСмСнта Π½Π΅Ρ‚ Π² спискС, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError.


numbers = [1, 2, 3, 4, 5]
index = numbers.index(3)
print(index)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 2

Если Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск всСх Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ элСмСнта Π² спискС, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх элСмСнтов ΠΈ сохранСния индСксов Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… элСмСнтов.


numbers = [1, 2, 3, 4, 3, 5]
indices = []
value = 3
for i in range(len(numbers)):
    if numbers[i] == value:
        indices.append(i)
print(indices)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: [2, 4]

Поиск Π² словарС

Поиск Π² словарС Π² Python выполняСтся ΠΏΡƒΡ‚Π΅ΠΌ обращСния ΠΊ ΠΊΠ»ΡŽΡ‡Π°ΠΌ словаря. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ in ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ get(). ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ in Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ссли ΠΊΠ»ΡŽΡ‡ присутствуСт Π² словарС, ΠΈ False Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.


student = {
    "name": "John",
    "age": 18,
    "grade": "A"
}

if "age" in student:
    print("Age is present")
else:
    print("Age is not present")

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: Age is present

ΠœΠ΅Ρ‚ΠΎΠ΄ get() Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выполнСния поиска ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ Π² словарС. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, связанноС с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, Ссли ΠΊΠ»ΡŽΡ‡ присутствуСт, ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.


student = {
    "name": "John",
    "age": 18,
    "grade": "A"
}

age = student.get("age", -1)
print(age)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 18

grade = student.get("grade", "N/A")
print(grade)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: A

school = student.get("school", "N/A")
print(school)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: N/A

Поиск Π² строкС

Python прСдоставляСт нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для выполнСния поиска Π² строкС. ΠœΠ΅Ρ‚ΠΎΠ΄ find() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ подстроки Π² строкС. Если подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1.


text = "Hello, world!"

index = text.find("world")
print(index)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: 7

index = text.find("Python")
print(index)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: -1

Для поиска всСх Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ подстроки Π² строкС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ re.findall() ΠΈΠ· модуля re. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список всСх Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… совпадСний.


import re

text = "Hello, hello, hello, world!"

matches = re.findall("hello", text, re.IGNORECASE)
print(matches)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: ['Hello', 'hello', 'hello']

Поиск Π² спискС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

Если Ρƒ вас Π΅ΡΡ‚ΡŒ список ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поиск ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ значСниям, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ списков Π² сочСтании с условным ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.


students = [
    ("John", 18),
    ("Jane", 16),
    ("Alice", 17)
]

name = "John"
age = 18

matches = [student for student in students if student[0] == name and student[1] == age]
print(matches)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚: [('John', 18)]

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы выполнСния поиска Π² Python Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ списки, словари, строки ΠΈ списки ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. НадСюсь, эта информация оказалась ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для вас ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с поиском Π² Python.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

5 способов поиска элСмСнта Π² спискС python (ΠΏΠΈΡ‚ΠΎΠ½)

Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ, ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ, поиск элСмСнта Π² спискС (ΠΌΠ΅Ρ‚ΠΎΠ΄ дСлСния ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ). РСшСниС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Python

Алгоритм Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска. Binary search algorithm. Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Python: Π³Π΄Π΅ ΠΎΠ½ΠΈ находятся ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Π½Π°ΠΉΡ‚ΠΈ 🐍

πŸ”’ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π»ΡŒΡ‰ΠΈΠΊ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ - руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ”

Π£Π·Π½Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ upper Π² Python ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ!

πŸ”ΠšΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ поиск Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π³ΠΈΠ΄

πŸš€ΠšΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° python? ΠŸΡ€ΠΎΡΡ‚Π°Ρ инструкция

πŸ”Ž Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, являСтся Π»ΠΈ число ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠΌ Π² Python? πŸ’‘

πŸš€ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅ΠΏΠ°ΡˆΠΊΡƒ Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… 🐒