Нужно в строке похожая на
1A3BCF
2BNKLOPY5T
найти числа.
задан 26 окт 2012 в 14:43
JustKJustK
3544 золотых знака8 серебряных знаков21 бронзовый знак
import re
re.findall('(d+)', '2BNKLOPY5T')
ответ дан 26 окт 2012 в 14:46
eigeneineigenein
3,75715 серебряных знаков29 бронзовых знаков
ответ дан 26 окт 2012 в 14:44
qnubqnub
3,01812 серебряных знаков14 бронзовых знаков
s = "1A3BCF 2BNKLOPY5T"
for i in filter( str.isdigit , s) : print(i)
сработает только для одиночных символов
ответ дан 26 окт 2012 в 14:55
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
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!
asked Feb 15, 2012 at 23:16
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 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
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
hexparrothexparrot
3,3791 gold badge24 silver badges33 bronze badges
1
На чтение 4 мин Просмотров 5.3к. Опубликовано 03.03.2023
Содержание
- Введение
- Поиск методом count
- Поиск при помощи цикла for
- Поиск с использованием оператора in
- В одну строку
- Поиск с помощью лямбда функции
- Поиск с помощью функции any()
- Заключение
Введение
В ходе статьи рассмотрим 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']
Ниже приводится объяснение наиболее заметных программных операторов в приведенном выше примере:
- re.findall (‘[0-9] +’, str) возвращает все слова, которые являются числами.
- Функция filterNumber(n) возвращает истину, если длина числа n равна указанной нами длине N.
- Отфильтруйте список, возвращенный на шаге 1, с помощью функции, определенной на шаге 2.
- Фильтр на шаге 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:
- Использование метода index() для поиска индекса элемента в списке.
- Использование оператора in для проверки наличия элемента в списке.
- Использование метода count() для подсчета количества вхождений элемента.
- Использование функции any().
- Функция filter() создает новый список элементов на основе условий.
- Применение цикла for.
Содержание
- Способ 1: Использование метода index()
- Способ 2: Использование «оператора in»
- Способ 3: Использование функции count()
- Синтаксис
- Пример
- Способ 4: использование понимания списка с any()
- Способ 5: Использование метода filter()
- Способ 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».