使用计算字段将列表列表转换为字典

时间:2015-10-07 03:29:15

标签: python

['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的新手。 非常感谢在这种情况下的任何帮助。我似乎无法从在线教程中找到任何提示

1 个答案:

答案 0 :(得分:0)

当你问如何进步时,而不是实际的代码,这里有一些关于如何解决问题的建议:

  1. 使用Python的with语句打开文本文件。
  2. 使用csv模块从文件加载数据。这将为您提供列表,每行一个,也意味着最终条目不包括\n
  3. itertools.groupby功能与csv阅读器一起使用,并使用基于第一个条目的密钥返回kg,其中k是关键(例如1),g是一个迭代器,为您提供与1匹配的条目列表。
  4. 您可以调查列表理解,然后将这些匹配的行转换为包含加权输出的列表。
  5. 然后,您可以使用列表中的sum来生成您的价值。
  6. 然后您将所有数据打印出一行输出。