2013-07-27 31 views
0

首先感谢您花时间看我的问题。我不是简单地描述我想要解决的问题的解决方案,而是最好概述问题,以便能够提出替代解决方案的想法。实现这一解决方案的方式更有可能更好。动态命名的集合,还是替代建议的方法?

的问题,我有:

我产生与相关联得分排名和其他相关值名字的列表,这些列表每天都在发生,但必须改变随着时间的进展为需要去除一些名称的结果。目前,这些名称列表是在基于Excel的表单上生成的,其中包含以下格式的数据类型;

(Unique List Title) 
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter) 
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter) 
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter) 

(Unique List Title) 
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter) 
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter) 
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter) 
(Unique Name in list),(Rank),(Score),(Calculated Numeric Value),(non unique filter) 

例如;

Mrs Dodgsons class 
Rosie,1,123.8,5,Lincoln University 
James,2,122.6,7,Lincoln University 
Chris,3,120.4,12,Lincoln University 
Douglas,4,120.2,18,Lincoln University 

Dr Clements class 
Hannah,1,126.9,2.56,Durham University 
Gill,2,124.54,6.89,Durham University 
Jack,3,122.04,15.62,Durham University 
Jamie,4,121.09,20.91,Durham University 
Douglas,4,120.2,18,Durham University 

现在我有什么是用户的单独列表及其相关的“非独特的过滤网”谁需要从上面的Excel生成的列表(不要担心这个小项目的最终产品中除去不重 - 保存一个修改过的Excel文档),这个列表是通过一个每两分钟更新一次的网页刮板生成的。我目前认为这个问题潜在可行的解决方法是使用一段代码将每个列表保存为CSV(如果可能的话),然后在找到唯一名称/非唯一过滤器组合后将它们从它们出现的SET/S中删除。

例如,如果道格拉斯,达勒姆大学在此列表中返回,那么定义的两组中的第二组将会看到道格拉斯被删除。在其中两个集合中出现唯一用户名的情况下,其中一个将始终出现在要与其关联的大学一起删除的用户列表中(因此我们可以确定将哪个用户从中删除)。但请注意要删除的用户并不总是一次出现在两个集合中,例如“Rosie,Lincoln University”可能很容易出现在要删除的用户列表中。

我以前在python论坛上提出了一个非常类似的问题,但是我在提出问题的方式以及我想要实现的方式中犯了一些错误,而不是在我已经开始的旧线程上混淆问题在这里建立一个新的线程。在旧线程中,我会回答一些关于问题的一般性问题,以便提供一些说明。

Q1所以第一个列表一天只产生一次,那天过后会发生什么,它被扔掉,存储,替换等。

A1我的直觉是它应该被保存为一个简单的.txt .csv或类似的文件夹,如果只是一个调试日志。

Q2每两分钟就第一个列表需要改变,会发生什么改变的名单,谁需要了解它,它被保存或只是一些记忆状态等

A2最终目的改变的代码是用用户统计数据产生RSS,其中一些统计数据包括(Rank)&(计算的数值)。秩是自我解释,关于这可能会因用户被删除而改变。然而,(计算的数值)是从一个等式中得出的,该等式使用每个列表的(分数)总和以及所述列表中的用户数量。所以在回答最初的问题时,列表需要以某种方式存储。

Q3名称在每个类中是唯一的还是在整个数据中都是唯一的。

A3名称在整个数据中都是唯一的,即用户名Douglas总是会引用Douglas,如果用户出现在多个类中,则它总是出现在要删除的用户列表中。

Q4如果名字是唯一的,当两个人在同一个班级中有相同的名字时会发生什么,这听起来很可能。

A4在这个例子中,同一个类中的多个用户似乎有可能具有相同的名称,但实际上它不可能发生。

我对堆栈溢出的问题是;

  1. 提出可行至于产生多个唯一命名集(最多60元一天)
  2. 是否有实现相同结果的更好方法的方法?

任何帮助或意见,将不胜感激

问候AEA

+0

其实,看看你写的东西会更好看^^ – Ketouem

+0

我还没有开始编写代码,我仍然试图决定实现上述目标的最佳方法。我对编码和python相对来说比较陌生,但我的设计代码的能力受到限制,因为我不知道使用python可以使用哪些功能和可能性。 – AEA

回答

1

不,我不认为你可以在每个CSV文件中的数据转换为set没有数据丢失。您可以通过将它们转换为与由csv的对应行中的所有其他数量组成的列表值关联的(user, non-unique filter)的元组来键入的字典来避免这种情况。

要更新这些字典,您可以简单地删除它们中存在的任何与您需要删除的单独用户列表中的任何条目匹配的条目。

如果您不确定如何做这些事情,请随时提出另一个问题。

相关问题