training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Как отфильтровать список Python

Создано: 10 января 2025Автор: Егор Астапов105 просмотровСложность: легкий

Расскажу вам про фильтрацию списка ['1', '2', 'test']. Список необходимо очистить список от буквенных значений и оставить только цифры. В итоге должен получится отфильтрованный список ['1','2'], Есть одна сложность - числа представлены в виде строк.

Способ 1: Использование цикла и метода isdigit(). Эта внутренняя функция проверяет строку '1' как регулярные выражения.

original_list = ['1', '2', 'test']
filtered_list = []

for item in original_list:
if item.isdigit():
filtered_list.append(item)

print(filtered_list)

Способ 2: Использование спискового включения. Это самый простой и короткий способ.

original_list = ['1', '2', 'test']
filtered_list = [item for item in original_list if item.isdigit()]

print(filtered_list)

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

original_list = ['1', '2', 'test']
filtered_list = list(filter(lambda item: item.isdigit(), original_list))

print(filtered_list)

Способ 4: Использование регулярных выражений. Если у вас масса проверок, то лучше использовать регулярные выражения. Например поиск http, https в строке.

import re

original_list = ['1', '2', 'test']
filtered_list = [item for item in original_list if re.match(r'^\d+$', item)]

print(filtered_list)

Способ 5: Использование NumPy (если список большой)

import numpy as np

original_list = ['1', '2', 'test']
array = np.array(original_list)
filtered_list = array[np.char.isdigit(array)].tolist()

print(filtered_list)

Комментарии

реклама