定义file_counts

时间:2016-11-07 23:31:49

标签: python python-3.x dictionary

重新实现计数功能,从a获取数字列表 文件。在文件中,每一行都包含一个整数而不包含任何内容 其他。最后一个字符将是换行符。

filename ::一个字符串,指示当前目录中文件的名称。

返回值:作为键的int字典和作为值的出现次数。

file_counts("file1.txt")   →  {100:3, 3:1, 9:2}

file_counts("file2.txt")   →  {1:1, 2:1, 3:1, 4:1, 5:1}

测试用例:

检查file1.txt何时包含"1\n1\n1\n2\n3\n3\n3\n3\n5\n"file_counts("file1.txt") == {1:3,2:1,3:4,5:1}

检查file1.txt何时包含"100\n100\n3\n100\n9\n9\n"file_counts("file1.txt") == {100:3, 3:1, 9:2}

基本上,文件的字符将在新行上显示它们显示的次数。因此,对于100:3,100将被打印3次。

*背景资料:

def counts(xs):
    d = {}
    for item in xs:
         d[item] = xs.count(item)
    return d 

此函数计算字典中的字符并返回每个字符的计数*

我不确定如何实现此功能。我一直在尝试多种方式,这是我得到答案的最接近的方式。我不确定遗失的部分是什么,并且会感激任何帮助。

我的代码:

def file_counts(filename):
    dict = {}
    with open(filename) as file_counts:
         for line in file_counts:

我不知道接下来要做什么。我尝试编辑计数功能,但没有成功。

我是这个网站的新手,所以我对格式不满意,所以请随时编辑格式问题,如果需要更多信息,请询问

1 个答案:

答案 0 :(得分:0)

您可以使用var myId = JSON.parse(req.body.id); collection.findOne({'_id': ObjectID(myId)}, function(error,doc) { if (error) { callback(error); } else { callback(null, doc); } }); 方法将整个文档作为字符串读取。然后,您将拥有一串值,每个值之间带有var ObjectId = require('mongodb').ObjectID; 个字符。您可以使用read方法将字符串缩减为值列表。最后,您可以使用\n模块计算每个值的实例。

split()

请注意,您应该避免使用collections.Counter为词典命名。 import collections as c def file_counts(filename): with open(filename, 'r') as f: # use flag 'r' to just read the doc data = f.read() # read in the data file as a single string data = data.strip() # get rid of the last \n on the end data = data.split('\n') # break up the string into a list of values counted_data = c.Counter(data) return dict(counted_data) 是python中的保留字,用于从映射到字典的对象生成字典(例如 - 元组列表)。