objects = [1, 0, 50, 11, "Чтото", True, False, 0, 1,1, 50,1,1,1,0,0,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,True] z = 1 count = 0 for i in objects: for j in objects[z:]: if i is j: count += 1 break z+=1 print(len(objects) - count)
objects = [1, 0, 50, 11, "Чтото", True, False, 0, 1,1, 50,1,1,1,0,0,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,True] z = 1 count = 0 for i in objects: for j in objects[z:]: if i is j: count += 1 break z+=1 print(len(objects) - count)
>>> objects = [1, 0, 50, 11, "Чтото", True, False, 1, 0] >>> len(set(map(id, objects))) 7
JOHN_16Ну ты прям нас затроллил
Вообще можно и так
LestoroerДа примерно так, но можно короче, завтра напишу свое решение, сегодня компа под рукой нет.
JOHN_16Прям шикарно!)
Вообще можно и так
>>> objects =
>>> len(set(map(id, objects)))
7
JOHN_16Месье знает толк в извращениях
Вообще можно и так
a = [1, 0, 50, 11, "Что-то", True, False, 1, 0]
print(len(set(a)))
>>> a = [1,1,2,2,3, 10**2, 100] >>> len(set(map(id,a))) 4 >>> a = [1,1,2,2,3, 100**2, 10000] >>> len(set(map(id,a))) 5
Zodtне правда:
Правильным ответом будет 5, так как Python не различает True и 1, как и False с 0, для него это синонимы.
>>> id(True) 4306851104 >>> id(1) 4307228720 >>> True is 1 False
>>> [bool(x) for x in (True, 1, False, 0, 123)] [True, True, False, False, True] >>> True + 1 2 >>> False + 1 1 >>> [int(x) for x in (True, False)] [1, 0]
>>> True.__class__.__mro__ (<class 'bool'>, <class 'int'>, <class 'object'>) >>> int(1).__class__.__mro__ (<class 'int'>, <class 'object'>)