Парсинг CSV файла - Python
Формулировка задачи:
Привет, я тут чутка джуниор, поэтому хотелось бы узнать как крутые дяди бы сделали эту задачу.
Клиентская часть уже написана, интересует конкретно подсчет уникальных значений. Получается, нужно сделать словарь для каждого, в каждом элементе словаря будет лежать пустой список. На каждой итерации цикла нужно проверять элемент на наличия в списке, если элемент не имеется, то он туда добавляется. Потом просто элементы каждого списка и выдается результат. Проблема в том, что способ не кошерный и сожрет много памяти.
Вот, кстати, кусок кода для нахождения заполненности. Мне он тоже не нравится. Хотелось бы узнать как это можно было бы сделать лучше.
Спойлер
Листинг программы
- import csv
- length = 0
- counters = {}
- def processing(rows):
- for row in rows:
- global length
- length += 1
- yield dict(map(lambda argv: func(*argv), row.items()))
- def func(name, value):
- if value:
- counters[name] = counters.get(name, 0) + 1
- return name, value
- with open('data.csv', 'rt') as f:
- reader = csv.DictReader(f)
- print(list(processing(reader)))
- for name, counter in counters.items():
- print('{}: {}%'.format(name, counter * 100 / length))
Решение задачи: «Парсинг CSV файла»
textual
Листинг программы
- title, title2
- value1, value2
- value3,
- value5, value6
- , value8
- value3, value8
- , value8
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д