- 6 Способов в Python подсчитать уникальные значения в списке
- Вступление
- Уникальный элемент Python в списке
- Различные методы подсчета уникальных значений
- 1. Python Подсчитывает уникальные значения в списке обычным методом грубой силы
- 2. С помощью счетчика
- 3. Python Подсчитывает Уникальные Значения В Списке С помощью набора
- 4. С помощью numpy.unique
- 5. Python Подсчитывает Уникальные Значения В Списке С Помощью Функции pandas dict + zip
- 6. Использование фрейма данных pandas.
- Кроме того, Читайте
- Вывод
- Читайте ещё по теме:
- Получение уникальных значений из списка в Python
- Set() для получения уникальных значений из списка
- list.append() и цикл for
- numpy.unique() для создания списка с уникальными элементами
6 Способов в Python подсчитать уникальные значения в списке
Значения, которые появляются в списке только один раз, являются уникальными. Мы обсудим различные методы подсчета уникальных значений python в списке.
Вступление
В Python у нас есть дубликаты элементов, присутствующих в списке. Иногда мы сталкиваемся с ситуацией, когда нам нужно подсчитать уникальные значения в списке в Python. Поэтому мы будем обсуждать различные способы поиска уникальных значений в массиве или списке. А также выведите количество уникальных элементов, присутствующих в списке.
Уникальный элемент Python в списке
Уникальные элементы-это элементы, которые появляются только один раз в списке .
Предположим, у нас есть список = [1, 2, 3, 2, 3, 5, 1, 6, 1]. Здесь мы видим, что 1 приходит 3 раза, 2 приходит 2 раза, 3 приходит 2 раза, 5 и 6 приходят один раз. Если мы посчитаем уникальные элементы в списке, то их будет всего 5.[1, 2, 3, 5, 6].
Различные методы подсчета уникальных значений
Давайте разберемся во всех различных методах, с помощью которых мы можем вычислить количество уникальных элементов в списке или массиве с помощью примеров:
1. Python Подсчитывает уникальные значения в списке обычным методом грубой силы
Мы называем этот метод подходом грубой силы . Этот метод не так эффективен, так как в нем больше времени и больше пространства. Этот подход будет принимать пустой список и переменную count, которая будет установлена в 0. мы пройдем от начала до конца и проверим, нет ли этого значения в пустом списке. Затем мы добавим его и увеличим переменную count на 1. Если его нет в пустом списке, то мы не будем его считать, не будем добавлять в пустой список.
# take an input list as lst lst = [1, 2, 3, 5, 1, 2, 6, 7] print("Input list : ",lst) #Empty list lst1 = [] count = 0 # traverse the array for i in lst: if i not in lst1: count = count + 1 lst1.append(i) # printing the output print("Output list : ",lst1) print("No. of unique items are:", count)
Input list : [1, 2, 3, 5, 1, 2, 6, 7] Output list : [1, 2, 3, 5, 6, 7] No. of unique items are: 6
Здесь, во-первых, мы взяли входной список и напечатали входной список. Во-вторых, мы взяли пустой список и переменную count, которая установлена в 0. В-третьих, мы прошли список с самого начала и проверили, нет ли значения в пустом списке или нет. Если значение отсутствует в пустом списке, мы увеличиваем значение счетчика на 1 и добавляем это значение в пустой список. Если мы обнаруживаем, что элементы присутствуют в списке, мы не добавляем их в пустой список и не увеличиваем значение счетчика на 1. Наконец, мы напечатали пустой список, который теперь содержит уникальные значения и количество списка. Таким образом, мы можем видеть все уникальные элементы в списке.
2. С помощью счетчика
В этом методе мы будем использовать функцию счетчика из библиотеки коллекций. В этом случае мы будем создавать словарь с помощью функции counter (). Ключи будут уникальными элементами, а значения-числом этого уникального элемента. Взяв ключи из словаря, мы создадим список и напечатаем длину списка.
#import Counter from collections from collections import Counter #input of list lst = [1, 2, 3, 1, 2, 5, 3, 4, 3, 6] print("Input list : ",lst) lst1 = Counter(lst).keys() print("output list : ",lst1) print("No of unique elements in the list are:", len(lst1))
Input list : [1, 2, 3, 1, 2, 5, 3, 4, 3, 6] output list : dict_keys([1, 2, 3, 5, 4, 6]) No of unique elements in the list are: 6
Здесь, во-первых, мы импортировали функцию Counter() из библиотеки коллекций. Во-вторых, мы взяли входной список и напечатали входной список. В-третьих, мы применили счетчик(), неупорядоченную коллекцию, где элементы хранятся как ключи словаря, а их подсчеты хранятся как значения словаря. Из входного списка мы создали новый список, в котором хранятся только те элементы, ключевые значения которых присутствуют один раз. Все эти элементы различны в списке. Наконец, мы напечатали пустой список, который теперь содержит уникальные значения и количество списка. Таким образом, мы можем видеть все уникальные элементы в списке.
3. Python Подсчитывает Уникальные Значения В Списке С помощью набора
В этом методе мы будем использовать встроенный тип данных python, называемый Set. Мы возьмем входные данные в виде списка, а затем преобразуем их в набор. Как мы все знаем, набор не содержит в себе никаких повторяющихся элементов. Он будет содержать только уникальные элементы, и мы выведем длину списка с помощью функции length ().
# Take input list lst = [2, 3, 5, 2, 4, 3, 1, 5, 2, 1] print("Input list : ", lst) lst1 = set(lst) print("Output list : ",lst1) print("No of unique elements in the list are:", len(lst1))
Input list : [2, 3, 5, 2, 4, 3, 1, 5, 2, 1] Output list : No of unique elements in the list are: 5
Здесь, во-первых, мы взяли входной список и напечатали входной список. Во-вторых, мы преобразовали входной список в набор. Set, который является встроенным типом данных в python, содержит только уникальные элементы в нем. В-третьих, мы сохранили все значения в другом списке. Наконец, мы напечатали пустой список, который теперь содержит уникальные значения и количество списка. Таким образом, мы можем видеть все уникальные элементы в списке.
4. С помощью numpy.unique
В этом методе мы импортируем библиотеку numpy с ее псевдонимом np. В библиотеке numpy мы будем использовать функцию numpy.unique (), которая возвращает уникальное значение входного списка. Мы также можем вернуть количество каждого уникального значения, если параметр return count имеет значение True.
#import numpy module import numpy as np #input list lst = [1,2,3,4,2,5,1,2,6,3] print("Input list : ",lst) lst1 = np.unique(lst) print("Output list : ", lst1) print("No of unique elements in the list are:", len(lst1))
Input list : [1, 2, 3, 4, 2, 5, 1, 2, 6, 3] Output list : [1 2 3 4 5 6] No of unique elements in the list are: 6
Здесь, во-первых, мы импортировали модуль numpy в качестве псевдонима np. Во-вторых, мы взяли входной список и напечатали входной список. В-третьих, мы применили numpy. unique (), который сохранит только уникальные значения списка и сохранит их в другом списке. Наконец, мы напечатали пустой список, который теперь содержит уникальные значения и количество списка. Таким образом, мы можем видеть все уникальные элементы в списке.
5. Python Подсчитывает Уникальные Значения В Списке С Помощью Функции pandas dict + zip
В этом методе мы будем использовать словарь с комбинацией функций zip для поиска уникальных значений строки путем преобразования их в список.
#input as a string str="latracalsolutions" unique = dict(zip(list(str),[list(str).count(i) for i in list(str)])) print("Dictionary : ",unique) print("count : ",len(unique))
Здесь во-первых, мы взяли строку как. Во-вторых, мы применили функцию dict внутри того, что мы применили функцию zip, и внутри нее мы преобразовали строку в список и подсчитали ключи и значения, пройдя по списку. В-третьих, мы взяли переменную unique, в которой мы хранили ключи и значения словаря. Наконец, мы напечатали длину словаря с помощью функции length в python.
6. Использование фрейма данных pandas.
В этом методе мы будем импортировать панд в качестве псевдонима pd. мы будем принимать входные данные в кадре данных панд.
import pandas as pd df = pd.DataFrame(< 'Marks' : [65, 65, 64, 58, 67, 60, 58, 65]>, Names = ['sid', 'sam', 'Nia', 'Jenny', 'virat', 'Lucifer', 'Ramu', 'Nikita']) n = len(pd.unique(df['Marks'])) print("No.of.unique values :",n)
Здесь, во-первых, мы импортировали модуль панд с псевдонимом pd. Во – вторых, мы создали фрейм данных с вводом меток и имен. В-третьих, мы создали переменную n, в которой будем хранить значение. Мы применили уникальную функцию в метках в панд, а затем вычислили ее длину с помощью функции длины и сохранили ее в переменной n. Наконец-то мы напечатали результат.
Кроме того, Читайте
- Numpy Count | Практическое объяснение поиска вхождений
- 4 Надежных Способа Подсчета Слов в строке в Python
- 5 Лучших способов найти длину строки Python
- Использование панд в CSV() с совершенством
- Сложение матриц в Python | Сложение двух матриц
Вывод
В этом уроке мы увидели, что представляют собой уникальные элементы в списке. Кроме того, мы видели различные методы, с помощью которых мы можем найти уникальные элементы в списке. Мы также подсчитали уникальные элементы в списке и напечатали их количество. Все методы подробно объясняются с помощью примеров. Все примеры также объясняются, что даст вам лучшее понимание методов. Вы можете использовать любую из программ, чтобы найти количество уникальных элементов в списке в соответствии с вашими потребностями и выбором.
Читайте ещё по теме:
Получение уникальных значений из списка в Python
В этой статье мы рассмотрим 3 способа получения уникальных значений из списка в Python. Имея дело с огромным количеством необработанных данных, мы часто сталкиваемся с ситуациями, когда нам нужно извлечь уникальный и неповторяющийся набор данных из необработанного набора входных данных.
Для получения уникальных значений из списка в Python можно использовать любой из следующих способов:
- Метод set();
- Использование метода list.append() вместе с циклом for;
- Использование метода Python numpy.unique().
Set() для получения уникальных значений из списка
Set хранит в себе одну копию повторяющихся значений. Это свойство можно использовать для получения уникальных значений из списка в Python.
- Когда список преобразуется в набор, в него помещается только одна копия всех повторяющихся элементов.
- Затем нам нужно будет преобразовать набор обратно в список, используя следующую команду:
list_inp = [100, 75, 100, 20, 75, 12, 75, 25] set_res = set(list_inp) print("The unique elements of the input list using set():\n") list_res = (list(set_res)) for item in list_res: print(item)
The unique elements of the input list using set(): 25 75 100 20 12
list.append() и цикл for
Чтобы найти уникальные элементы, мы можем применить цикл Python for вместе с функцией list.append(), чтобы добиться того же:
- Сначала мы создаем новый (пустой) список, т.е. res_list.
- После этого, используя цикл for, мы проверяем наличие определенного элемента в новом созданном списке (res_list). Если элемент отсутствует, он добавляется в новый список с помощью метода append().
В случае, если при обходе мы сталкиваемся с элементом, который уже существует в новом списке, то есть повторяющимся элементом, в этом случае он игнорируется циклом for. Мы будем использовать оператор if, чтобы проверить, является ли этот элемент уникальным или повторяющимся.
list_inp = [100, 75, 100, 20, 75, 12, 75, 25] res_list = [] for item in list_inp: if item not in res_list: res_list.append(item) print("Unique elements of the list using append():\n") for item in res_list: print(item)
Unique elements of the list using append(): 100 75 20 12 25
numpy.unique() для создания списка с уникальными элементами
Модуль NumPy имеет встроенную функцию с именем numpy.unique для извлечения уникальных элементов данных из массива numpy.
Чтобы получить уникальные элементы из списка Python, нам нужно будет преобразовать список в массив NumPy, используя следующую команду.
Затем мы будем использовать метод numpy.unique() для извлечения уникальных элементов данных из массива numpy и, наконец, распечатаем получившийся список.
numpy.unique(numpy-array-name)
import numpy as N list_inp = [100, 75, 100, 20, 75, 12, 75, 25] res = N.array(list_inp) unique_res = N.unique(res) print("Unique elements of the list using numpy.unique():\n") print(unique_res)
Unique elements of the list using numpy.unique(): [12 20 25 75 100]