You are currently viewing Python – Извлекает уникальные значения из словаря значений

Python – Извлекает уникальные значения из словаря значений

Иногда при работе с данными у нас может возникнуть проблема, при которой нам необходимо выполнить извлечение только уникальных значений из списка значений словаря. Это может иметь применение во многих областях, таких как веб-разработка. Давайте обсудим некоторые способы, с помощью которых эта задача может быть выполнена.

Способ № 1 : sorted() + set comprehension + values()

Для выполнения этой задачи можно использовать комбинацию вышеперечисленных функций. В этом случае мы извлекаем все значения с помощью values (), и понимание набора используется для получения уникальных значений, скомпилированных в списке.

# Python3 code to demonstrate working of
# Extract Unique values dictionary values
# Using set comprehension + values() + sorted()

# initializing dictionary
test_dict = {'gfg' : [5, 6, 7, 8],
			'is' : [10, 11, 7, 5],
			'best' : [6, 12, 10, 8],
			'for' : [1, 2, 5]}

# printing original dictionary
print("The original dictionary is : " + str(test_dict))

# Extract Unique values dictionary values
# Using set comprehension + values() + sorted()
res = list(sorted({ele for val in test_dict.values() for ele in val}))

# printing result
print("The unique values list is : " + str(res))

Выход:

Исходный словарь : {‘gfg’: [5, 6, 7, 8], ‘best’: [6, 12, 10, 8], ‘is’: [10, 11, 7, 5], ‘for’: [1, 2, 5]}
уникальные значения списка : [1, 2, 5, 6, 7, 8, 10, 11, 12]

Метод № 2 : Использование chain() + sorted() + values()

этого выполняет задачу аналогичным образом. Разница в том, что задача понимания набора выполняется с помощью chain().

# Python3 code to demonstrate working of
# Extract Unique values dictionary values
# Using chain() + sorted() + values()
from itertools import chain

# initializing dictionary
test_dict = {'gfg' : [5, 6, 7, 8],
			'is' : [10, 11, 7, 5],
			'best' : [6, 12, 10, 8],
			'for' : [1, 2, 5]}

# printing original dictionary
print("The original dictionary is : " + str(test_dict))

# Extract Unique values dictionary values
# Using chain() + sorted() + values()
res = list(sorted(set(chain(*test_dict.values()))))

# printing result
print("The unique values list is : " + str(res))

Выход:

Исходный словарь : {‘gfg’: [5, 6, 7, 8], ‘best’: [6, 12, 10, 8], ‘is’: [10, 11, 7, 5], ‘for’: [1, 2, 5]}
уникальные значения списка : [1, 2, 5, 6, 7, 8, 10, 11, 12]