После функции zip не могу вывести в порядке очереди конвертацию в список (list) и после в словарь (dict) (или в обратной последовательности)
День добрый! Начал изучать Py и на разделе с функцией zip
столкнулся с непониманием.
- Создал два разных списка с одинаковым кол-вом элементов
- Объединил их через функцию
zip
- После создал новые объекты, с конвертировав результат функции
zip
сперва вdict
- А после так же результат функции
zip
вlist
- Далее по очереди, после каждой конвертации, вывел их через
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'>
И если блоки со словарем и списком, поменять местами, то теперь уже список выведется полноценно, а словарь только {}
.