@fastym

Почему удаляются данные из переменной?

Есть такой код, читаем данные из файла в переменную rows, после создаем словарь перебирая элементы rows.

Почему после создания словаря(rows_sort) в переменной row пусто?

import csv

with open("data.csv", encoding="utf-8") as file_in:
    rows = csv.DictReader(file_in, delimiter=",")
    rows_sort = {i["email"].split("@")[1]: 0 for i in rows} 
    print(*rows)
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Почему после создания словаря(row_sort)..

В коде нет переменной row_sort. Читайте внимательно.

.. в переменной row пусто?

В коде нет переменной row. Читайте внимательно.

Что вы хотите сделать этой строчкой? print(*rows)
В перемнную rows кладётся CSV-ридер:
rows = csv.DictReader(file_in, delimiter=",")
Это объект-генератор, который выдаёт строки из CSV-файла. Но вы все строки из него достали вот в этой строке кода:
rows_sort = {i["email"].split("@")[1]: 0 for i in rows}

Это значит, что этот генератор теперь пуст и при попытке превратить его в кортеж (то есть распаковать звёздочкой в аргументы функции), он возвратит пустой кортеж, ведь генератор останавливает итерацию сразу, файл вычитан полностью.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы