Позиционные частотные показатели для букв в ячейках в CSV-файле - PullRequest
0 голосов
/ 14 сентября 2011

Я пытался использовать PHP / Python, чтобы выяснить наиболее эффективный способ анализа содержимого файла CSV, который был загружен в него через веб-форму. Короче говоря, он содержит ряд строк, которые уже были разбиты на буквы, и где первое целое число указывает количество вхождений для этой конкретной строки.

Например:

2,f,o,o
6,h,e,l,l,o
7,a,i,r,p,l,a,n,e

Я пытаюсь выяснить, как вернуть количество вхождений каждой буквы с учетом ее положения (первое, последнее или где-либо посередине) и общего числа вхождений строки.

Пример:

First Position:
f: 2
h: 6
a: 7

Last Position:
o: 8
e: 7

Middle: 
Anything left over.

Может кто-нибудь показать мне, как это сделать?

1 Ответ

0 голосов
/ 14 сентября 2011

Ребята правы, что вы должны попробовать это, тем более что это не очень сложно, даже если это домашнее задание (не так ли?) Вот достаточно подсказок:

  • Определите базовый класс Counter с использованием collections.defaultdict для реализации collections.Counter, как и нового счетчика в 3.1 .Он должен иметь метод update (), вы можете перегрузить его с помощью частотного аргумента, по умолчанию ...,frequency=1).- Для этого также потребуется метод most_common(), вы можете напрямую использовать max(Counter.values()), не нужно конвертировать в список, а затем сортировать.Затем используйте понимание списка, чтобы найти букву (буквы) с этой максимальной частотой.Остерегайтесь определить, как обрабатывать регистр с более чем одной буквой, имеющей max freq.
  • Объявить три Counters firstLetter, middleLetters, lastLetter
  • Для каждой строки:
  • Преобразовать строку в список, разделив ',' Распаковать каждую строку (помощник fn,или просто прямая распаковка кортежа в 3.x) в (freq,first,middle,last), где middle сам по себе является кортежем.Или просто используйте индексирование: a[0],a[1],a[2:-2],a[-1]
  • Сумма подсчета букв с использованием collection.Counter или defaultdict и умножение всех значений на freq
  • Поиск буквы с максимальной частотой либо с помощью most_common() или используя понимания.О, тебе это даже не нужно.
...