@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)
  • Вопрос задан
  • 86 просмотров
Решения вопроса 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}

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

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

Войти через центр авторизации
Похожие вопросы
04 мая 2024, в 06:10
4000 руб./за проект
04 мая 2024, в 05:49
10000 руб./за проект
04 мая 2024, в 03:57
10000 руб./за проект