Відфільтруйте список рядків, використовуючи інший список
Цей приклад показує, як дані у списку рядків можуть бути відфільтровані без використання будь-якого методу. Список рядків фільтрується тут за допомогою іншого списку. Тут оголошено дві змінні списку з іменем список1 і список2. Значення список2 фільтрується за допомогою значень список1. Сценарій буде відповідати першому слову кожного значення список2 зі значеннями список1 і надрукуйте ті значення, яких не існує список1.
# Оголосіть дві змінні спискуlist1 = ['Perl', 'PHP', 'Java', 'ASP']
list2 = ['JavaScript є мовою сценаріїв на стороні клієнта' ',
'PHP - це мова сценаріїв на стороні сервера',
'Java - мова програмування',
'Bash - це мова сценаріїв']
# Фільтруйте другий список на основі першого списку
filter_data = [x для x у списку2 if
усі (y не в x для y в списку1)]
# Друк даних списку перед фільтром та після фільтра
print ("Зміст першого списку:", list1)
print ("Зміст другого списку:", list2)
print ("Вміст другого списку після фільтра:", filter_data)
Вихід:
Запустіть сценарій. Ось, список1 не містить слова 'Баш'. Вихідні дані містять лише одне значення з список2 це 'Bash - це мова сценаріїв '.
Відфільтруйте список рядків за допомогою іншого списку та користувацької функції
Цей приклад показує, як список рядків може бути відфільтрований за допомогою іншого списку та користувацької функції фільтра. Сценарій містить дві змінні списку з іменами list1 і list2. Функція спеціального фільтра визначає загальні значення обох змінних списку.
# Оголосіть дві змінні спискуlist1 = ['90', '67', '34', '55', '12', '87', '32']
list2 = ['9', '90', '38', '45', '12', '20']
# Оголосіть функцію фільтрації даних із першого списку
фільтр def (list1, list2):
повернути [n для n у списку1, якщо
будь-який (m в n для m у списку2)]
# Роздрукуйте дані списку перед фільтром та після фільтра
print ("Зміст list1:", list1)
print ("Зміст list2:", list2)
print ("Дані після фільтра", Filter (list1, list2))
Вихід:
Запустіть сценарій. Значення 90 та 12 існують в обох змінних списку. Наступний результат буде створений після запуску сценарію.
Відфільтруйте список рядків за допомогою регулярного виразу
Список фільтрується за допомогою всі () і будь-який () методи у попередніх двох прикладах. У цьому прикладі використовується регулярний вираз для фільтрування даних зі списку. Регулярний вираз - це шаблон, за яким будь-які дані можна шукати або збігати. "знову" Модуль використовується в python для застосування регулярних виразів у сценарії. Тут оголошено список із кодами предметів. Регулярний вираз використовується для фільтрації тих предметних кодів, які починаються зі слова, 'CSE'. '^'символ використовується в шаблонах регулярних виразів для пошуку на початку тексту.
# Імпортуйте модуль re, щоб використовувати регулярний виразімпортувати повторно
# Заявіть, що список містить код теми
sublist = ['CSE-407', 'PHY-101', 'CSE-101', 'ENG-102', 'MAT-202']
# Оголосіть функцію фільтра
фільтр def (даталіст):
# Пошук даних на основі регулярних виразів у списку
return [val для val в даталісті
якщо повторно.пошук (r '^ CSE', val)]
# Роздрукуйте дані фільтра
друк (Фільтр (підрахунок))
Вихід:
Запустіть сценарій. підсписку змінна містить два значення, які починаються на 'CSE'. Наступний результат з’явиться після запуску сценарію.
Відфільтруйте список рядків, використовуючи вираз lamda
Цей приклад показує використання ламда вираз для фільтрації даних зі списку рядків. Тут вказана змінна списку search_word використовується для фільтрації вмісту з текстової змінної з іменем текст. Зміст тексту перетворюється у список із іменами, text_word на основі простору за допомогою розділити () метод. ламда вираз опускатиме ці значення з text_word які існують у search_word і зберігати відфільтровані значення у змінних, додаючи пробіл.
# Оголосіть список, що містить пошукове словоsearch_word = ["Навчати", "Код", "Програмування", "Блог"]
# Визначте текст, у якому буде шукатись слово зі списку
text = "Вивчіть програмування на Python у блозі підказок Linux"
# Розділіть текст на основі пробілу та збережіть слова у списку
text_word = текст.розділити ()
# Використання лямбда-виразу фільтрує дані
filter_text = ".join ((filter (лямбда-вал: val not i
n search_word, text_word)))
# Друк тексту перед фільтруванням та після фільтрування
print ("\ nТекст перед фільтруванням: \ n", текст)
print ("Текст після фільтрування: \ n", filter_text)
Вихід:
Запустіть сценарій. Наступний результат з’явиться після запуску сценарію.
Відфільтруйте список рядків методом filter ()
filter () метод приймає два параметри. Перший параметр приймає ім'я функції або Жоден а другий параметр приймає ім'я змінної списку як значення. filter () метод зберігає ці дані зі списку, якщо він повертає true, інакше він відкидає дані. Ось, Жоден задається як перше значення параметра. Всі значення без помилковий буде отримано зі списку як відфільтровані дані.
# Оголосіть список даних міксуlistData = ['Привіт', 200, 1, 'Світ', False, True, '0']
# Виклик методу filter () із None та списком
filteredData = фільтр (Немає, listData)
# Роздрукуйте список після фільтрування даних
print ('Список після фільтрування:')
для val у відфільтрованих даних:
друк (val)
Вихід:
Запустіть сценарій. Список містить лише одне помилкове значення, яке буде пропущено у відфільтрованих даних. Наступний результат з’явиться після запуску сценарію.
Висновок:
Фільтрування корисно, коли вам потрібно шукати та отримувати певні значення зі списку. Сподіваюся, наведені вище приклади допоможуть читачам зрозуміти способи фільтрації даних зі списку рядків.