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