После функции zip не могу вывести в порядке очереди конвертацию в список (list) и после в словарь (dict) (или в обратной последовательности)

День добрый! Начал изучать Py и на разделе с функцией zip столкнулся с непониманием.

  1. Создал два разных списка с одинаковым кол-вом элементов
  2. Объединил их через функцию zip
  3. После создал новые объекты, с конвертировав результат функции zip сперва в dict
  4. А после так же результат функции zip в list
  5. Далее по очереди, после каждой конвертации, вывел их через print в консоль.

ПРОБЛЕМА: В консоль выводится только тот print конвертации, что стоит первым в списке, последующие выводятся только скобки либо [] , либо {} , в зависимости какая конвертируемая последовательность была второй.

ВОПРОС: Почему вторая конвертация не выводит полный список или словарь? Почему отображается корректно только первая? Ведь сам объект zip не мутируется, после первой конвертации, о чем нам говорит встроенная функция type , после каждого этапа.

k = ['MAN', 'KIA', 'TOYOTA', 'NISSAN']
v = [10, 70, 100, 80]


kv_zip = zip(k, v)


kv_zip_dict = dict(kv_zip)    
print(kv_zip_dict)

print(type(kv_zip_dict))
print(type(kv_zip))


kv_zip_list = list(kv_zip)
print(kv_zip_list)

print(type(kv_zip))
print(type(kv_zip_list))

А в консоле вот так выводится:

{'MAN': 10, 'KIA': 70, 'TOYOTA': 100, 'NISSAN': 80}
<class 'dict'>
<class 'zip'>
[]
<class 'zip'>
<class 'list'>

И если блоки со словарем и списком, поменять местами, то теперь уже список выведется полноценно, а словарь только {}.


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