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

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

import json

s = '1,5,8,11,22,25'

def get_next(number):
    clean_s = f'[{s}]'
    number_list = json.loads(clean_s)
    input_number_index = number_list.index(number)
    return number_list[input_number_index + 1] # return next number

print(get_next(5)) # will print 8
print(get_next(11)) # will print 22
print(get_next(22)) # will print 25
print(get_next(1)) # will print 5

Как я решу эту проблему, используя регулярное выражение питона?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это должно помочь.

Бывший:

import re

def get_next(number):
    m = re.search(r"(?< = {},)(\d+),?".format(number), '1,5,8,11,22,25')
    if m:
        return m.group(1)
    return "N\A"

print(get_next(5)) # will print 8
print(get_next(11)) # will print 22
print(get_next(22)) # will print 25
print(get_next(1)) # will print 5
print(get_next(25)) # will print N\A

Красиво, но предвидение лишнее.

Booboo 24.06.2019 13:55

Запятая была частью предпросмотра, и это тоже лишнее. Я думаю, что все, что вам действительно нужно, это r"(?< = {},)(\d+)". Я не знаю, кто проголосовал за вас, но я компенсирую это, проголосовав за вас.

Booboo 24.06.2019 16:30

Другие вопросы по теме