Как найти определенное число в питоне

Нужно в строке похожая на

1A3BCF

2BNKLOPY5T

найти числа.

задан 26 окт 2012 в 14:43

JustK's user avatar

JustKJustK

3544 золотых знака8 серебряных знаков21 бронзовый знак

import re

re.findall('(d+)', '2BNKLOPY5T')

ответ дан 26 окт 2012 в 14:46

eigenein's user avatar

eigeneineigenein

3,75715 серебряных знаков29 бронзовых знаков

ответ дан 26 окт 2012 в 14:44

qnub's user avatar

qnubqnub

3,01812 серебряных знаков14 бронзовых знаков

s = "1A3BCF 2BNKLOPY5T"
for i in filter( str.isdigit , s) : print(i)

сработает только для одиночных символов

ответ дан 26 окт 2012 в 14:55

fogbit's user avatar

fogbitfogbit

3,44611 серебряных знаков9 бронзовых знаков

list_num = []
for i in 'bla23bla1bla8bla2':
    try:
        num = int(i)
        list_num.append(num)
    except ValueError:
        continue
print(list_num)

ответ дан 23 фев 2018 в 17:59

Юрій Кобук's user avatar

1

I am working on a python function. I have a given string and I need to find if there is a number on that string, and then add 1 to that number. (any number from 1 to 100).

I found the «find», or the «count» function but what they do (as I understand) is to find a specific letter or number. On my function, I dont know which number I am looking for, so I dont know how to use those functions.

Example 1:

# WHAT I HAVE    
string = "STRING 2"
# WHAT I WANT AS A RESULT
STRING 3

Example 2:

# WHAT I HAVE
string = "STRING 9 STRING"
# WHAT I WANT AS A RESULT
STRING 10 STRING

Does anyone knows how to do this?
Thanks a lot!

Ned Batchelder's user avatar

asked Feb 15, 2012 at 23:16

mauguerra's user avatar

2

import re

def increment_repl(match):
    return str(int(match.group(0)) + 1)

def increment_ints(s):
    return re.sub(r'-?d+', increment_repl, s)

>>> increment_ints("STRING 2")
'STRING 3'
>>> increment_ints("STRING 9 STRING")
'STRING 10 STRING'
>>> increment_ints("-1 0 1 2")
'0 1 2 3'

answered Feb 15, 2012 at 23:25

Andrew Clark's user avatar

Andrew ClarkAndrew Clark

201k34 gold badges272 silver badges304 bronze badges

2

In my opinion the best way to do that would be to use a re.sub to make the replacement.

In particular, note that the repl argument can be a callable, so it would be very easy to write a function that adds one to an integer.

answered Feb 15, 2012 at 23:22

jcollado's user avatar

jcolladojcollado

39.1k8 gold badges102 silver badges133 bronze badges

If you prefer a regular-expression free solution:

string = "STRING 9 STRING"

def increment(val):
    if val.isdigit():
        return str(int(val) + 1)
    return val

newstring = [increment(i) for i in string.split()]
print " ".join(newstring)

answered Feb 15, 2012 at 23:28

hexparrot's user avatar

hexparrothexparrot

3,3791 gold badge24 silver badges33 bronze badges

1

На чтение 4 мин Просмотров 5.3к. Опубликовано 03.03.2023

Содержание

  1. Введение
  2. Поиск методом count
  3. Поиск при помощи цикла for
  4. Поиск с использованием оператора in
  5. В одну строку
  6. Поиск с помощью лямбда функции
  7. Поиск с помощью функции any()
  8. Заключение

Введение

В ходе статьи рассмотрим 5 способов поиска элемента в списке Python.

Поиск методом count

Метод count() возвращает вхождение указанного элемента в последовательность. Создадим список разных цветов, чтобы в нём производить поиск:

colors = ['black', 'yellow', 'grey', 'brown']

Зададим условие, что если в списке colors присутствует элемент ‘yellow’, то в консоль будет выведено сообщение, что элемент присутствует. Если же условие не сработало, то сработает else, и будет выведена надпись, что элемента отсутствует в списке:

colors = ['black', 'yellow', 'grey', 'brown']

if colors.count('yellow'):
    print('Элемент присутствует в списке!')
else:
    print('Элемент отсутствует в списке!')

# Вывод: Элемент присутствует в списке!

Поиск при помощи цикла for

Создадим цикл, в котором будем перебирать элементы из списка colors. Внутри цикла зададим условие, что если во время итерации color приняла значение ‘yellow’, то элемент присутствует:

colors = ['black', 'yellow', 'grey', 'brown']

for color in colors:
    if color == 'yellow':
         print('Элемент присутствует в списке!')

# Вывод: Элемент присутствует в списке!

Поиск с использованием оператора in

Оператор in предназначен для проверки наличия элемента в последовательности, и возвращает либо True, либо False.

Зададим условие, в котором если ‘yellow’ присутствует в списке, то выводится соответствующее сообщение:

colors = ['black', 'yellow', 'grey', 'brown']

if 'yellow' in colors:
    print('Элемент присутствует в списке!')
else:
    print('Элемент отсутствует в списке!')

# Вывод: Элемент присутствует в списке!

В одну строку

Также можно найти элемент в списке при помощи оператора in всего в одну строку:

colors = ['black', 'yellow', 'grey', 'brown']

print('Элемент присутствует в списке!') if 'yellow' in colors else print('Элемент отсутствует в списке!')

# Вывод: Элемент присутствует в списке!

Или можно ещё вот так:

colors = ['black', 'yellow', 'grey', 'brown']

if 'yellow' in colors: print('Элемент присутствует в списке!')

# Вывод: Элемент присутствует в списке!

Поиск с помощью лямбда функции

В переменную filtering будет сохранён итоговый результат. Обернём результат в список (list()), т.к. метода filter() возвращает объект filter. Отфильтруем все элементы списка, и оставим только искомый, если он конечно присутствует:

colors = ['black', 'yellow', 'grey', 'brown']

filtering = list(filter(lambda x: 'yellow' in x, colors))

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

colors = ['black', 'yellow', 'grey', 'brown']

filtering = list(filter(lambda x: 'yellow' in x, colors))

if filtering:
    print('Элемент присутствует в списке!')
else:
    print('Элемент отсутствует в списке!')

# Вывод: Элемент присутствует в списке!

Поиск с помощью функции any()

Функция any принимает в качестве аргумента итерабельный объект, и возвращает True, если хотя бы один элемент равен True, иначе будет возвращено False.

Создадим условие, что если функция any() вернёт True, то элемент присутствует:

colors = ['black', 'yellow', 'grey', 'brown']

if any(color in 'yellow' for color in colors):
    print('Элемент присутствует в списке!')
else:
    print('Элемент отсутствует в списке!')

# Вывод: Элемент присутствует в списке!

Внутри функции any() при помощи цикла производится проверка присутствия элемента в списке.

Заключение

В ходе статьи мы с Вами разобрали целых 5 способов поиска элемента в списке Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Чтобы найти числа определенной длины, N – это строка, используйте регулярное выражение [0-9] + для поиска числовых строк любой длины. [0-9] соответствует одной цифре. После того, как вы найдете все элементы, отфильтруйте их по указанной длине.

Пример 1

В следующем примере мы берем строку и находим в ней все трехзначные числа.

import re

str = 'We four guys, live at 2nd street of Malibeu 521. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.'

#search using regex
x = re.findall('[0-9]+', str)
print('All Numbersn',x)

#digits of length N
N=3

def filterNumber(n):
	if(len(n)==N):
		return True
	else:
		return False
		
#filter the list
finalx = list(filter(filterNumber, x))
print('Final Listn',finalx)

Вывод:

All Numbers
 ['2', '521', '248', '88796451', '52']
Final List
 ['521', '248']

Ниже приводится объяснение наиболее заметных программных операторов в приведенном выше примере:

  1. re.findall (‘[0-9] +’, str) возвращает все слова, которые являются числами.
  2. Функция filterNumber(n) возвращает истину, если длина числа n равна указанной нами длине N.
  3. Отфильтруйте список, возвращенный на шаге 1, с помощью функции, определенной на шаге 2.
  4. Фильтр на шаге 3 возвращает список, содержащий числа указанной длины.

Мы узнали, как получить список чисел определенной длины, используя регулярное выражение в Python.

Как получить список всех чисел из строки?

Чтобы получить список всех чисел в строке, используйте регулярное выражение «[0-9] +» с методом re.findall(). [0-9] представляет собой регулярное выражение, соответствующее одной цифре в строке. [0-9] + представляет собой непрерывные последовательности цифр любой длины.

numbers = re.findall('[0-9]+', str)

Где, str – строка, в которой нам нужно найти числа. re.findall() возвращает список строк, соответствующих регулярному выражению.

Пример 1

В следующем примере мы возьмем строку. Мы живем по адресу 9–162, Малибеу. Мой номер телефона – 666688888. Я найду все числа [‘9’, ‘162’, ‘666688888’], присутствующие в строке.

import re

str = 'We live at 9-162 Malibeu. My phone number is 666688888.'
#search using regex
x = re.findall('[0-9]+', str)
print(x)

Вывод:

['9', '162', '666688888']

Пример 2: получение списка всех непрерывных цифр в строке

В следующем примере мы возьмем строку: Мы, четверо, живем на 2-й улице Малибеу. У меня в кармане было 248 долларов наличными. Я получил билет с серийным номером 88796451-52. И нахожу все числа [‘2’, ‘248’, ‘88796451’, ’52’], присутствующие в строке.

import re

str = 'We four guys, live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.'
#search using regex
x = re.findall('[0-9]+', str)
print(x)

Вывод:

['2', '248', '88796451', '52']

Мы узнали, как получить все числа в виде строки в виде списка, используя регулярные выражения в Python, с помощью примеров программ.

Как получить список всех чисел из строки?

Чтобы получить список всех чисел в строке, используйте регулярное выражение «[0-9] +» с методом re.findall(). [0-9] представляет собой регулярное выражение, соответствующее одной цифре в строке. [0-9] + представляет собой непрерывные последовательности цифр любой длины.

numbers = re.findall('[0-9]+', str)

Где, str – строка, в которой нам нужно найти числа. re.findall() возвращает список строк, соответствующих регулярному выражению.

Пример 1

В следующем примере мы возьмем строку. Мы живем по адресу 9–162, Малибеу. Мой номер телефона – 666688888. Я найду все числа [‘9’, ‘162’, ‘666688888’], присутствующие в строке.

import re

str = 'We live at 9-162 Malibeu. My phone number is 666688888.'
#search using regex
x = re.findall('[0-9]+', str)
print(x)

Вывод:

['9', '162', '666688888']

Пример 2: получение списка всех непрерывных цифр в строке

В следующем примере мы возьмем строку: Мы, четверо, живем на 2-й улице Малибеу. У меня в кармане было 248 долларов наличными. Я получил билет с серийным номером 88796451-52. И нахожу все числа [‘2’, ‘248’, ‘88796451’, ’52’], присутствующие в строке.

import re

str = 'We four guys, live at 2nd street of Malibeu. I had a cash of $248 in my pocket. I got a ticket with serial number 88796451-52.'
#search using regex
x = re.findall('[0-9]+', str)
print(x)

Вывод:

['2', '248', '88796451', '52']

Мы узнали, как получить все числа в виде строки в виде списка, используя регулярные выражения в Python, с помощью примеров программ.

Время чтения 3 мин.

Существует несколько способов проверки наличия элемента в списке в Python:

  1. Использование метода index() для поиска индекса элемента в списке.
  2. Использование оператора in для проверки наличия элемента в списке.
  3. Использование метода count() для подсчета количества вхождений элемента.
  4. Использование функции any().
  5. Функция filter() создает новый список элементов на основе условий.
  6. Применение цикла for.

Содержание

  1. Способ 1: Использование метода index()
  2. Способ 2: Использование «оператора in»
  3. Способ 3: Использование функции count()
  4. Синтаксис
  5. Пример
  6. Способ 4: использование понимания списка с any()
  7. Способ 5: Использование метода filter()
  8. Способ 6: Использование цикла for

Способ 1: Использование метода index()

Чтобы найти элемент в списке Python, вы можете использовать метод list index(). Список index() — это встроенный метод, который ищет элемент в списке и возвращает его индекс.

Если один и тот же элемент присутствует более одного раза, метод возвращает индекс первого вхождения элемента.

Индекс в Python начинается с 0, а не с 1. Таким образом, через индекс мы можем найти позицию элемента в списке.

streaming = [‘netflix’, ‘hulu’, ‘disney+’, ‘appletv+’]

index = streaming.index(‘disney+’)

print(‘The index of disney+ is:’, index)

Выход

The index of disney+ is: 2

Метод list.index() принимает единственный аргумент, элемент, и возвращает его позицию в списке.

Способ 2: Использование «оператора in»

Используйте оператор in, чтобы проверить, есть ли элемент в списке.

main_list = [11, 21, 19, 46]

if 19 in main_list:

  print(«Element is in the list»)

else:

  print(«Element is not in the list»)

Выход

Вы можете видеть, что элемент «19» находится в списке. Вот почему оператор in возвращает True.

Если вы проверите элемент «50», то оператор in вернет False и выполнит оператор else.

Способ 3: Использование функции count()

Метод list.count() возвращает количество вхождений данного элемента в списке.

Синтаксис

Метод count() принимает единственный элемент аргумента: элемент, который будет подсчитан.

Пример

main_list = [11, 21, 19, 46]

count = main_list.count(21)

if count > 0:

  print(«Element is in the list»)

else:

  print(«Element is not in the list»)

Выход

Мы подсчитываем элемент «21», используя список в этой функции example.count(), и если он больше 0, это означает, что элемент существует; в противном случае это не так.

Способ 4: использование понимания списка с any()

Any() — это встроенная функция Python, которая возвращает True, если какой-либо элемент в итерируемом объекте имеет значение True. В противном случае возвращается False.

main_list = [11, 21, 19, 46]

output = any(item in main_list for item in main_list if item == 22)

print(str(bool(output)))

Выход

Вы можете видеть, что в списке нет «22». Таким образом, нахождение «22» в списке вернет False функцией any(). Если функция any() возвращает True, элемент в списке существует.

Способ 5: Использование метода filter()

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

Функция filter() возвращает итератор, который перебирает элементы, когда функция возвращает значение True.

main_list = [11, 21, 19, 46]

filtered = filter(lambda element: element == 19, main_list)

print(list(filtered))

Выход

В этом примере мы используем функцию filter(), которая принимает функцию и перечисляет ее в качестве аргумента.

Мы использовали лямбда-функцию, чтобы проверить, совпадает ли входной элемент с любым элементом из списка, и если это так, он вернет итератор. Чтобы преобразовать итератор в список в Python, используйте функцию list().

Мы использовали функцию list() для преобразования итератора, возвращаемого функцией filter(), в список.

Способ 6: Использование цикла for

Вы можете узнать, находится ли элемент в списке, используя цикл for в Python.

main_list = [11, 21, 19, 46]

for i in main_list:

  if(i == 46):

    print(«Element Exists»)

Выход

В этом примере мы прошли список элемент за элементом, используя цикл for, и если элемент списка совпадает с входным элементом, он напечатает «Element exists».

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Dark souls 2 сэр алон как найти
  • Как найти несуществующий номер телефона
  • Сталкер народная солянка как найти диск адреналину
  • Майнкрафт ice and fire как найти дракона
  • Как исправить подождите в плей маркете

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии