Python. Задача о нахождении количества уникальных объектов в списке. Два подхода.
Даны следующие условия: Реализуйте программу, которая будет вычислять количество различных объектов в списке. Два объекта a и b считаются различными, если a is b равно False. Вашей программе доступна переменная с названием objects, которая ссылается на список, содержащий не более 100 объектов. Выведите количество различных объектов в этом списке.
Решение в 10 строк(которое сразу пришло на ум):
Формируем список list c уникальными элементами. Элементы берём из objects.
Второй вариант более изящный. Используем особенность питона — множества. Как известно, они могут содержать только уникальные элементы. Решение в 4 строки:
Не работает программа, которая вычисляет кол-во различных объектов в списке
Прохожу сейчас курс на степике по питону, и в одном из степов попалась задача:
Реализуйте программу, которая будет вычислять количество различных объектов в списке. Два объекта a и b считаются различными, если a is b равно False.
Вашей программе доступна переменная с названием objects, которая ссылается на список, содержащий не более 100 объектов. Выведите количество различных объектов в этом списке. Рассмотрим пример:
objects = [1, 2, 1, 2, 3] # будем считать, что одинаковые числа соответствуют одинаковым объектам, а различные – различным
Тогда все различные объекты являют собой множество . Таким образом, количество различных объектов равно трём.
Я написал программу, которая не работает:
В самом степе есть решение:
Я проверил свою на следующих примерах:
objects = [1, 2, 1, 2, 3]
objects = [1, 2, 1, 5, True, False, True, ‘false’, [], [1,2], [1,2]]
И она выдает те же рез-ты, что и правильная, но тест не проходит. Вот хотел узнать почему? Потому что, как мне кажется, моя делает то же самое(подсчет повторов в списке) только направления движения второго цикла разные. Если кто-то понял, почему моя программа не решает задачу, объясните пожалуйста почему или хотя бы предложите начальные данные, на которых она выдаст неправильный результат. Заранее спасибо.
Почему количество уникальных значений не соответствует?
Реализуйте программу, которая будет вычислять количество различных объектов в списке.
Два объекта a и b считаются различными, если a is b равно False.
Вашей программе доступна переменная с названием objects, которая ссылается на список, содержащий не более 100 объектов. Выведите количество различных объектов в этом списке.
Примечание:
Количеством различных объектов называется максимальный размер множества объектов, в котором любые два объекта являются различными.
Рассмотрим пример:
objects = [1, 2, 1, 2, 3] # будем считать, что одинаковые числа соответствуют одинаковым объектам, а различные – различным
Тогда все различные объекты являют собой множество <1, 2, 3>. Таким образом, количество различных объектов равно трём.
это Python 3 Реализуйте программу, которая будет вычислять количество различных объектов в списке. Два объекта a и b считаются различными, если a is b равно False. Вашей программе доступна переменная с названием objects, которая ссылается на список, содержащий не более 100 объектов. Выведите количество различных объектов в этом списке. Формат ожидаемой программы: ans = 0 for obj in objects: # доступная переменная objects ans += 1 print(ans) Примечание: Количеством различных объектов называется максимальный размер множества объектов, в котором любые два объекта являются различными. Рассмотрим пример: objects = [1, 2, 1, 2, 3] # будем считать, что одинаковые числа соответствуют одинаковым объектам, а различные – различным Тогда все различные объекты являют собой множество <1, 2, 3>. Таким образом, количество различных объектов равно трём.
Var s:string;
n,k,i:integer;
begin
for n:=1 to 2 do
begin
writeln(‘Введите строку ‘,n,’:’);
readln(s);
k:=0;
for i:=1 to length(s) do
begin
case s[i] of
‘[‘: k:=k+1;
‘]’: k:=k-1;
end;
end;
if k=0
then writeln(‘В строке ‘,s,’ количество [ и ] одинаково’)
else writeln(‘В строке ‘,s,’ количество [ и ] не одинаково’);
end;
end.
Пример:
Введите строку 1:
c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c
В строке c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c количество [ и ] одинаково
Введите строку 2:
Просто [ пример ]] со [[ скобками
В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково