重新实现计数功能,从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:
我不知道接下来要做什么。我尝试编辑计数功能,但没有成功。
我是这个网站的新手,所以我对格式不满意,所以请随时编辑格式问题,如果需要更多信息,请询问
答案 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中的保留字,用于从映射到字典的对象生成字典(例如 - 元组列表)。