2015-10-07 40 views
-3
['1', 'james', '1', '90\n'] 
['1', 'james', '2', '78\n'] 
['1', 'james', '3', '87\n'] 
['1', 'james', '4', '98\n'] 
['2', 'alice', '1', '95\n'] 
['2', 'alice', '2', '91\n'] 
['2', 'alice', '3', '100\n'] 
['2', 'alice', '4', '98\n'] 

基本上,这就是我所拥有的。从文本文件中读取一堆列表。 我想弄清楚输出这样的东西到这个控制台的功能。将列表转换为计算字段的字典

1, james: 88.65 (this number is weigh-adjusted mark for all assignments) 
         *Weight for each assignment 0.2, 0.25, 0.25, 0.3 
2, alice: 96.15 

参数分别是学号,姓名,职务#和标记。 每个人在每个任务的文本文件中都至少有四行# 我是为自我教学目的这么做的,因为我是新来的Python。 非常感谢在这种情况下的任何帮助。我似乎无法从网上教程

+0

所以这些列表是对象还是只是字符串? – garg10may

+4

到OP:到目前为止您尝试过什么?对于很多人来说,这个问题很容易回答,但请不要回答。让OP显示一些努力。 –

+0

我操纵了文本文件,以便将它显示为字符串列表 – krnactry

回答

0

找到任何线索至于你问如何进步,而不是实际的代码,这里是关于如何攻击问题的一些建议:

  1. 使用Python with声明打开您的文本文件。
  2. 使用csv模块从文件加载数据。这会给你你的名单,每行一个,也意味着最后的条目不包括\n
  3. 使用itertools.groupby功能与CSV阅读器和基于第一条目的键返回你kg,其中k是关键(如1)和g是一个迭代器给你匹配1项的列表。
  4. 您可以调查列表理解,然后将这些匹配行转换为保存加权输出的列表。
  5. 然后,您可以在列表上使用sum来产生您的价值。
  6. 然后您将所有数据都打印出一行输出。