Python | Подсчет уникальных подсписков в списке

| | | | | | | | | |

Примеры:

Ввод:  [[`Компьютерщик`,` для`, `Гики`], [`Гики`, `для `], [` for`, `Geeks`,` geek`], [`Geek`,` for`, `geeks`]] Вывод:  {(` geeks`, `for`) : 1, («для», «компьютерщики», «компьютерщики»): 1, («компьютерщики», «для компьютерщиков», «компьютерщики»): 2} 

Ниже приведены некоторые способы достижения этой цели. .

Метод № 1. Использование итерации


# Код Python для подсчета уникальных sublist в списке


# Инициализировать входной список

Input = [[[ `Geek` , `for` , ` гики` ], [ `гики` , ` for` ],

[ `для` , `Geeks` , `компьютерщик` ], [ ` знаток` , `для` , ` компьютерщики` ]]


# Инициализировать список вывода

вывод = {}


# Использование итерации

для lis in Input :

Output.setdefault ( tuple (lis), list ()). добавить ( 1 )

для a, b in Output.items():

Output [a] = сумма (b)


# Распечатка

print (Вывод)

Вывод:

{(`Компьютерщики`, `для компьютерщиков`, `Гики`): 2, (`Комиксы`, `для`): 1, (`для`, `Гики `, `компьютерщик`): 1}

Способ № 2: Использование счетчика


# Код Python для поиска количества уникальных списков в списке списков


# Импорт счетчика из коллекций

<класс кода = "keyword"> из коллекций import Счетчик


# Инициализировать список вставки

lst = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 3 , 2 , 1 ], [ 1 , 2 , 3 ]]


# Использование счетчика

Вывод = Counter ([ tuple (i) for i in lst ])


# Распечатка

print (Вывод)

Вывод:

Счетчик ({(1, 2, 3): 2, (3, 2, 1): 1, (4, 5, 6): 1}) 

Метод # 3: Использование Pandas


# Код Python для подсчета уникальных подсписок в списке


# Импорт

из коллекции импорт Счетчик

import pandas as pd


# Инициализировать список ввода

lst = [[ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 3 , 2 , 1 ], [ 1 , 2 , 3 ]]


# Получить обратный отсчет

dict = Counter ([ tuple (i) for i in lst])


# Создать кадр данных pandas

Вывод = pd.DataFrame (данные = { `list` : list ( dict . ключи ()),

` count` : list ( dict . values ‚Äã‚Äã()) })


# Распечатка

print (Вывод)

Выход:

список счетчиков 0 1 (3, 2 , 1) 1 1 (4, 5, 6) 2 2 (1, 2, 3)