Расскажу вам про фильтрацию списка ['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)