Python. Задача о нахождении количества уникальных объектов в списке. Два подхода.

Теги: Python, Примеры

Даны следующие условия: Реализуйте программу, которая будет вычислять количество различных объектов в списке. Два объекта a и b считаются различными, если a is b равно False. Вашей программе доступна переменная с названием objects, которая ссылается на список, содержащий не более 100 объектов. Выведите количество различных объектов в этом списке.

Решение в 10 строк(которое сразу пришло на ум):

list = []
for obj in objects:
	flag = False
	for l in list:
		if obj is l:
			flag = True
			break
	if not flag:
		list.append(obj)
print(len(list))


Формируем список list c уникальными элементами. Элементы берём из objects.
Второй вариант более изящный. Используем особенность питона - множества. Как известно, они могут содержать только уникальные элементы. Решение в 4 строки:

m = set()
for obj in objects:
	m.add(id(obj))
print(len(m))



03 07 2016

Теги заметки: