csv文件中单元格中字母的位置频率计数


Positional frequency counts for letters in cells in a csv file

我一直在尝试使用PHP/Python来找出最有效的方法来解析通过web表单上传到它的CSV文件的内容。简而言之,它包含一系列已经按字母分割的字符串,其中第一个整数表示该特定字符串出现的次数。

例如:

<>之前2, f, o, o6 h e、l, l, o7一个ir p l, n, e之前

我试图弄清楚如何返回每个字母的出现次数,同时考虑到它的位置(第一,最后或中间的任何地方)和字符串的总出现次数。

的例子:<>之前第一个位置:f: 2h: 6答:7最后的位置:o: 8艾凡:7中间:剩下的东西。之前谁能告诉我怎么做这个?

这些家伙是正确的,你应该尝试这个,特别是因为它不是很难,如果它是家庭作业(是吗?)这里有足够的提示:

  • 使用 collections.defaultdict 定义一个基类 Counter 来实现 collections.Counter ,就像3.1中的新Counter一样。它必须有一个update()方法,您可以使用频率参数重载该方法,默认为 ...,frequency=1) 。-它还需要一个 most_common() 方法,你可以直接使用 max(Counter.values()) ,不需要转换为列表然后排序。然后使用列表推导找出频率最高的字母。注意定义如何处理具有最大频率的多个字母的情况。
  • 申报三个 Counters firstLetter, middleLetters, lastLetter
  • 每行:
  • 将行转换为列表通过分割','将每行解包(helper fn,或直接在3.x中解包元组)到 (freq,first,middle,last) ,其中 middle 本身就是一个元组。或者直接使用索引: a[0],a[1],a[2:-2],a[-1]
  • 使用集合计算字母计数。计数器或默认值,并将所有值乘以频率
  • 使用 most_common() 或使用推导式查找频率最大的字母。哦,你根本不需要那个。