Како филтрирати листу у Питхон-у на прави начин да добијете више од својих података

У Питхон-у, један од најпопуларнијих начина за чување секвенцијалних или поређаних података је коришћење листа. Листа у Питхон-у је уређена, променљива, уграђена структура података која се користи за складиштење колекције података. Ставке ускладиштене на листи се индексирају почевши од нуле, а корисници могу променити садржај листе након што је креирана.

Чињеница да су ставке на листи индексиране омогућава складиштење дупликата на листи. Листе у Питхон-у такође могу да садрже елементе различитих типова података. Ставке на листи су одвојене зарезима и затворене у угластим заградама.

Ево примера листа у Питхон-у:

# A list containing one data type - String
colors = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']

# A list containing multiple data types
movies = ['Transformers', 2012, 'Avengers', 300]

# A list with duplicate values
users = ['John', 'Mary', 'Elizabeth', 'John']

Листе су веома разноврсна структура података и можете извршити много операција над подацима ускладиштеним у листама. Једна уобичајена и корисна операција која се изводи на листама је филтрирање података ускладиштених на листи.

Зашто је филтрирање листа важно

Филтрирање листе значи издвајање одређених подскупова података који испуњавају дате критеријуме. На пример, могли бисмо да будемо заинтересовани само за парне бројеве на листи која садржи бројеве од 1 до 10. Да бисмо издвојили такве податке из листе, све што треба да урадимо је да филтрирамо листу да бисмо добили бројеве који су тачно дељиви са два.

Филтрирање је посебно корисно у манипулацији подацима и анализи података јер омогућава уклањање нежељених ставки са листа, креирање нових листа које садрже ставке које испуњавају дате критеријуме и издвајање података који испуњавају одређене услове.

Неке реалне примене листа за филтрирање укључују:

  • Провера ваљаности података – Када радите са листом, можда ћете желети да радите само са подацима који испуњавају дате критеријуме. На пример, на листи корисника, можда ћете бити заинтересовани за кориснике са именом и презименом. Филтрирање вам може омогућити да верификујете и потврдите податке на листи пре него што их обрадите. На овај начин избегавате рад са подацима који не испуњавају ваше захтеве.
  • Чишћење података – Пошто листе могу да чувају различите типове података, није реткост да листе садрже нежељене податке за које нисте заинтересовани. На пример, у листи која садржи имена, можда вас неће занимати нумеричке вредности у листа. Филтрирањем можете уклонити нежељене податке.
  • Анализа података – Филтрирање података је посебно корисно у анализи података јер вам омогућава да се фокусирате на одређене подскупове података, што вам омогућава да лако идентификујете обрасце и трендове. На пример, на листи ученика можете филтрирати ученике и студенте и користити резултат у анализи података. Можете чак и да филтрирате према старости, локацији и разреду. Ово вам омогућава да извучете корисније закључке из одређених подскупова података на листи
  Како уклонити некога из групе текстуалних порука на иПхоне-у

Филтрирање листа је веома корисна функција јер вам даје контролу над подацима ускладиштеним на листи омогућавајући вам да радите само са подацима који вас занимају.

Циљање специфичних подскупова података ускладиштених на листи је веома корисно јер поједностављује обраду података и анализу података чинећи процесе бољим, бржим и прецизнијим.

Коришћење функције филтер().

Функција филтер() је уграђена Питхон функција која се може користити за итерацију кроз итерабле као што је листа, торке, скуп или речник и издвајање ставки у итерабле које задовољавају дати услов.

Итерабле у Питхон-у је објекат који се може провлачити кроз своје елементе један по један. Итерација кроз итерабле враћа ставке у итерабле једну по једну.

Синтакса за функцију филтера је следећа:

filter(function, iterable)

функција – Питхон функција која садржи услов филтрирања

итерабле – итерабле који ће бити филтриран. У овом случају, користићемо листу.

Функција филтер() узима прослеђену функцију и примењује је на сваку ставку у прослеђеном итерабле, тестирајући услов филтрирања у односу на ставку. Ако ставка задовољава услов, то јест, враћа боолеан труе, који ће бити изабран функцијом филтер(). У случају да не испуњава услов, ставка се не бира.

Функција филтер() враћа итерабле са ставкама које су прошле услов филтрирања. Можете креирати нову листу која садржи ставке које су прошле услов филтрирања помоћу функције лист().

Да бисте видели функцију филтер() у акцији, размотрите листу испод, која се филтрира да би се изабрали бројеви мањи од 50:

#A list of numbers
numbers = [79, 15, 92, 53, 46, 24, 81, 77, 37, 61]

# function containing the filtering condition
def is_even(num):
   if num < 50:
      return True
   else:
      return False

# the function list() is used to create a list from the iterable
# returned by the filter() function
filtered_numbers = list(filter(is_even, numbers))
print(filtered_numbers)

Горњи код штампа следећи резултат:

[15, 46, 24, 37]

Коришћење фор петље

У Питхон-у, фор петља је наредба тока контроле која се користи за понављање секвенцијалних структура података као што су листа, тупле, стрингови и низови. Петља фор више пута извршава блок кода за сваку ставку у низу.

  Шта је СДК и разлика између СДК-а и АПИ-ја?

Општа синтакса за петљу фор је следећа:

for item in iterable:
    # Block of code to be executed for each item in the iterabele

итем – променљива која представља тренутну ставку која се обрађује у итерацији петље

итерабле – секвенца над којом се фор петља понавља. У овом случају, листа

Да бисмо филтрирали листу користећи фор петљу, мораћемо да проследимо наш услов филтрирања у одељку за блок кода који треба да се изврши. На овај начин, свака ставка ће бити процењена да би се видело да ли испуњава дати услов.

Када користите фор петљу за филтрирање листе, такође морате да креирате празну листу у коју ћете додати вредности које пролазе ваш услов филтрирања.

Да бисмо видели ово у акцији, хајде да филтрирамо листу бројева да бисмо добили бројеве мање од 50 користећи фор петљу:

numbers = [79, 15, 92, 53, 46, 24, 81, 77, 37, 61]

filtered_numbers = []

for num in numbers:
    if num < 50:
        # append() used to add a number that passes the condition
        # into filtered_numbers.
        filtered_numbers.append(num)

print(filtered_numbers)

Горњи код штампа следећи резултат:

[15, 46, 24, 37]

Користећи другу листу

Можете да филтрирате листу користећи другу тако што ћете проверити да ли се ставка са листе коју желите да филтрирате појављује на другој листи. На пример, размотрите следеће две листе

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']

vowels = ['a', 'e', 'i', 'o', 'u']

У листи која се зове слова изнад, можемо утврдити које ставке на листи нису самогласници тако што ћемо проверити да ли се ставка појављује на листи самогласника или не. Ако се ставка не појављује на листи самогласника, онда то није самогласник.

На овај начин можемо добити све знакове у словима који нису самогласници. Да бисте то урадили, извршите следећи код:

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']
vowels = ['a', 'e', 'i', 'o', 'u']

not_vowel = []

for letter in letters:
    if letter not in vowels:
        not_vowel.append(letter)
print(not_vowel)

Горњи код штампа следећи излаз, који садржи знакове у словима који нису самогласници.

['h', 'q', 'd', 's', 'x', 'g', 'j', 'k', 'f', 'c', 'b', 'n']

Коришћење листе разумевања

У Питхон-у, разумевање листе нуди краћу, сажетију и чистију синтаксу за креирање нове листе од постојеће листе. Разумевање листе има могућност да смањи више редова кода који се користе за креирање нове листе са друге листе користећи фор петљу у један ред.

  39 најбољих Цхроме екстензија у 2014

То је зато што када користите разумевање листе, ви дефинишете и додајете ставке на нову листу све у једном реду.

Синтакса за разумевање листе је следећа:

new_list = [expression for element in iterable if condition]

нова_лист – нова листа која садржи елементе додане разумевањем листе

израз – операција која ће се применити на сваку ставку итерабле

итем – име променљиве која представља тренутно активну ставку у итерабле

итерабле – итерабле из којег ће се бирати ставке.

иф услов – опциони део где се услов може додати у филтерске ставке да би се додали само они који задовољавају дати услов у нову листу која се креира.

Да бисмо видели разумевање листе у акцији и колико оно може да поједностави процес филтрирања и креирања нове листе, користићемо листу слова и самогласника да филтрирамо ставке са листе слова које нису на листи самогласника. Да бисте то урадили, извршите следећи код:

letters = ['a', 'h', 'q', 'd', 's', 'x', 'g', 'j', 'e', 'o', 'k', 'f', 'c', 'b', 'n']
vowels = ['a', 'e', 'i', 'o', 'u']

# list comprehension
not_vowel = [letter for letter in letters if letter not in vowels]
print(not_vowel)

Излаз кода изнад је приказан у наставку:

['h', 'q', 'd', 's', 'x', 'g', 'j', 'k', 'f', 'c', 'b', 'n']

Излаз је сличан претходном примеру, који је користио петљу фор за филтрирање листе користећи другу листу. Међутим, користи мање линија кода да би постигао исти резултат.

Закључак

Када радите са подацима у Питхон-у, уобичајена операција коју сте обавезни да извршите је филтрирање података из итерабле као што је листа. Ово је веома користан корак у анализи података и обради података јер вам омогућава да радите само са подацима који су релевантни за операцију или обраду која се обавља.

Веома популарна секвенцијална структура података у Питхон-у је листа. У случају да радите са листом и морате да је филтрирате, размислите о употреби било које методе истакнуте у чланку.

Такође можете прочитати о томе како да користите ламбда функције у Питхон-у са примерима.