Тема: поведінка змінних при конвертації zip-об'єкта в list та dict
Доброго дня!
Завдання: створити два списки, поєднати їх за допомогою функції zip(), результат конвертувати в list та dict, вивести в консоль.
При виконанні завдання виникло питання:
spares = ['Samsung', 'Apple', 'Sony']
costs = [100, 75, 50]
prices_zip = zip(spares, costs)
prices_list = list(prices_zip)
prices_dict = dict(prices_zip)
print(prices_list) # [('Samsung', 100), ('Apple', 75), ('Sony', 50)] - все коректно
print(prices_dict) # { } - пустий словник
Чому після конвертації prices_zip в тип list вона ніби позбавляється елементів і надалі її елементи вже неможливо "витягти" в dict?
Авжеж змінна prices_zip має лишатись, як була, бо для її конвертації я створюю нову змінну.
Тим більше, для zip-обєктів .copy() не існує.
Навіть якщо я взагалі нічого не змінюю, а лише намагаюсь вивести в консоль:
print(list(prices_zip) #[('Samsung', 100), ('Apple', 75), ('Sony', 50)]
print(dict(prices_zip) # { }
Тож, взагалі неясно, як виконати завдання, коли треба конвертувати zip-об'єкт спочатку в один, а потім в інший формат, зберігаючи повноту даних (якщо, наприклад, я конвертую спочатку zip в dict, а потім dict в list - то втрачу значення ключів словника).
При цьому, якщо я роблю:
prices_list = list(zip(spares, costs))
prices_dict = dict(zip(spares, costs))
все працює коректно.
Дякую за відповідь.