You are currently viewing Python | Проверьте, содержит ли словарь уникальные ключи и значения

Python | Проверьте, содержит ли словарь уникальные ключи и значения

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

Метод № 1 : Используя циклы

В Наивном методе для выполнения этой конкретной задачи, мы можем проверить каждое значение и вставить каждое значение в список/хэш в словаре, и когда произойдет повторение, просто остановите поток и верните false.

# Python3 code to demonstrate
# check for unique values
# Using loops

# initializing dictionary
test_dict = {'Manjeet' : 1, 'Akash' : 2, 'Akshat' : 3, 'Nikhil' : 1}

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

# using loops
# check for unique values
flag = False
hash_val = dict()
for keys in test_dict:
	if test_dict[keys] in hash_val:
		flag = True
		break
	else :
		hash_val[test_dict[keys]] = 1

# print result
print("Does dictionary contain repetition : " + str(flag))

Выход:

Оригинальный словарь : {'Nikhil': 1, 'Akash': 2, 'Akshat': 3, 'Manjeet': 1}
Содержит ли словарь повторение : True

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

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

# Python3 code to demonstrate
# check for unique values
# Using len() + set() + values()

# initializing dictionary
test_dict = {'Manjeet' : 1, 'Akash' : 2, 'Akshat' : 3, 'Nikhil' : 1}

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

# using len() + set() + values()
# check for unique values
flag = len(test_dict) != len(set(test_dict.values()))

# print result
print("Does dictionary contain repetition : " + str(flag))

Выход:

Оригинальный словарь : {'Nikhil': 1, 'Akash': 2, 'Akshat': 3, 'Manjeet': 1}
Содержит ли словарь повторение : True