Разный результат у метода type()

недавно начал изучать python и наткнулся на интересный результат метода type()

Почему в данном случае результат будет < class 'list'>

x=[1]
x.pop(0)
print(type(x)

А вот в этом случае результат будет < class 'int'>

y=[3]
print(type(y.pop(0)))

Python 3.9.7


Ответы (1 шт):

Автор решения: MaxU

потому, что в первом случае вы проверяете тип пустого списка x, а во втором случае идет проверка результата, который возвращается при вызове y.pop(0) - первым элементом списка y является целое число 3, поэтому вы получаете < class 'int'>.

Наглядный пример:

x = ['string']
print(type(x.pop(0)))
# <class 'str'>
print(type(x))
# <class 'list'>
→ Ссылка