У цій статті ми розглянемо різні техніки та стратегії для ефективного вилучення окремих елементів із заданого списку. Заглиблюючись у різноманітні методи від традиційних циклів до сучасних підходів Pythonic Python.
Input : [ 1,2, 1, 1, 3, 4, 3, 3, 5 ] Output : [1, 2, 3, 4, 5] Explaination: The output only contains the unique element from the input list.>
Отримайте унікальні значення зі списку
Нижче наведено теми, які ми розглянемо в цій статті:
- Обхід в список
- Використання встановити метод
- Використання функція reduce().
- Використання Operator.countOf() метод
- Використання модуль панди
- Використання numpy.unique
- Використання collections.Counter()
- Використання dict.fromkeys()
Отримайте унікальні значення зі списку шляхом обходу списку
Використовуючи обхід, ми можемо пройти для кожного елемента в списку та перевірити, чи елемент вже є в unique_list, якщо його там немає, тоді ми можемо додати його до unique_list. Це робиться за допомогою одного для циклу і інший оператор if, який перевіряє, чи є значення в унікальному списку чи ні, що еквівалентно іншому циклу for.
Python3
# function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> x>not> in> unique_list:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>Вихід
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Часова складність: O(n*n)
Допоміжний простір: O(n)
Отримайте унікальні значення зі списку Використання методу Set
Використання набір() властивості Python, ми можемо легко перевірити наявність унікальних значень. Вставте значення списку в набір. Набір зберігає значення лише один раз, навіть якщо його вставлено кілька разів. Після вставки всіх значень у набір за допомогою list_set=set(list1), перетворіть цей набір на список, щоб надрукувати його.
Python3
мережева операційна система
def> unique(list1):> ># insert the list to the set> >list_set>=> set>(list1)> ># convert the set to the list> >unique_list>=> (>list>(list_set))> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>Вихід
the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>
Часова складність: O(n), де n – довжина списку.
Допоміжний простір: O(n), де n – довжина списку.
Отримайте унікальні значення зі списку в Python за допомогою функції reduce().
Використання імпорту Python зменшити() з functools і перебирає весь елемент і перевіряє, чи є елемент дублікатом або унікальним значенням. Нижче наведено реалізацію вищеописаного підходу.
Python3
приватна проти публічної java
from> functools>import> reduce> def> unique(list1):> ># Print directly by using * symbol> >ans>=> reduce>(>lambda> re, x: re>+>[x]>if> x>not> in> re>else> re, list1, [])> >print>(ans)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>Вихід
the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>
Отримайте унікальні значення зі списку в Python за допомогою методу Operator.countOf().
Функція «unique» ініціалізує порожній «unique_list», а потім виконує ітерацію через «list1». Для кожного елемента «x» використовується « op.countOf() «, щоб перевірити, чи присутній «x» у «unique_list». Якщо не знайдено (рахунок дорівнює 0), «x» додається до «unique_list». Кінцеві унікальні значення друкуються за допомогою a петля . Код драйвера демонструє цей процес для двох списків, «список1» і «список2», демонструючи вилучення окремих елементів із кожного списку, зберігаючи їх вихідний порядок.
Python3
import> operator as op> # function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> op.countOf(unique_list, x)>=>=> 0>:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>Вихід
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Часова складність: O(N)
Допоміжний простір: O(N)
Отримайте унікальні значення зі списку в Python за допомогою модуля pandas
Функція «унікальний» використовує панди щоб створити серію зі списку1, потім використовує drop_duplicates() для усунення дублікатів і отримання списку унікальних значень. Згодом він перебирає унікальний список і друкує кожен елемент. Код драйвера демонструє процес для двох списків, «список1» і «список2», надаючи окремі значення для кожного списку.
Python3
import> pandas as pd> # function to get unique values> def> unique(list1):> >unique_list>=> pd.Series(list1).drop_duplicates().tolist()> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> #This code is contributed by Vinay Pinjala.> |
>
>
Вихід:
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Часова складність: O(N)
Допоміжний простір: O(N)
Отримайте унікальні значення зі списку Використання numpy.unique
Використання імпорту Python numpy , також отримують унікальні елементи в масиві. На першому кроці перетворіть список на x=numpy.array(список) а потім використовуйте numpy.unique(x) функція для отримання унікальних значень зі списку. numpy.unique() повертає лише унікальні значення зі списку.
Python3
команда make в linux
# using numpy.unique> import> numpy as np> def> unique(list1):> >x>=> np.array(list1)> >print>(np.unique(x))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>
Вихід:
the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>
Часова складність: O(nlogn) завдяки використанню алгоритму сортування, який використовується функцією numpy.unique().
Допоміжні приміщення: O(n), оскільки функція numpy.unique() створює копію вхідного масиву, а потім сортує її перед поверненням унікальних елементів.
Отримання унікальних значень зі списку в Python за допомогою collections.Counter()
Використання Python для імпорту Counter() з колекції надрукувати всі ключі елементів Counter або ми надрукуємо безпосередньо за допомогою * символ. Нижче наведено реалізацію вищеописаного підходу.
Python3
from> collections>import> Counter> # Function to get unique values> def> unique(list1):> ># Print directly by using * symbol> >print>(>*>Counter(list1))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>Вихід
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
Часова складність: O(n) , де n – кількість елементів у вхідному списку.
Допоміжний простір: O(n)
Отримати унікальні значення зі списку за допомогою dict.fromkeys()
Використовуючи fromkeys() метод структури даних словника, ми можемо отримати унікальні елементи. По-перше, нам потрібно визначити список, який складається з повторюваних елементів. Потім нам потрібно використати змінну, у якій ми будемо зберігати результат після використання методу fromkeys(). перетворити цей результат у список, оскільки метод fromkeys() є частиною словника, тому за замовчуванням він повертає словник з усіма унікальними ключами та None як їхні значення.
Python3
onclick js
# defining a list which consists duplicate values> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> # storing the result of the fromkeys()> # operation and converting it into list> unique_list_1>=> list>(>dict>.fromkeys(list1))> unique_list_2>=> list>(>dict>.fromkeys(list2))> # Printing the final result> print>(unique_list_1,unique_list_2,sep>=>'
'>)> |
>
>Вихід
[10, 20, 30, 40] [1, 2, 3, 4, 5]>
Часова складність – O(n)
Просторова складність – O(n)