0

首先感谢您花时间看我的问题。与其简单地描述我必须解决的问题的解决方案,我认为最好也概述问题,以便能够提出替代解决方案的想法。很有可能有更好的方法来实现这个解决方案。

我遇到的问题:

我生成具有相关分数等级和其他相关值的名称列表,这些列表每天生成,但由于需要删除一些名称,因此必须随着时间的推移而更改。目前,这些名称列表是在基于 excel 的表格上生成的,其中包含以下格式的以下数据类型;

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

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

例如;

Mrs Dodgsons class
Rosie,1,123.8,5
James,2,122.6,7
Chris,3,120.4,12

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

现在我有一个单独的用户列表,需要从上述 excel 生成的列表中删除(不用担心这个小项目的最终产品不是重新保存修改后的 excel 文档),这个列表是通过网络生成的刮板每两分钟更新一次。我目前认为可能解决这个问题的方法是使用一段代码,将 CSV 中的每个列表保存为 SET(如果可能的话),然后在找到唯一名称后将其从集合中删除/s 在其中发生。

我对 python 论坛的问题是;

  1. 提出的方法在生产多个唯一命名的 SET 方面是否可行(每天最多 60 个)
  2. 有没有更好的方法来达到同样的结果?

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

最好的问候 AEA

4

1 回答 1

3

您可能更容易使用字典而不是集合,因为字典与集合不同,它提供了一种将数据项与集合的每个成员相关联的自然方式。

这是一种方法,其中每个班级的数据存储在字典中,每个键是学生的姓名,其值是包含每个学生的分数等的列表:

data = {
    "Mrs Dodgson": {
        "Rosie": [1,123.8,5],
        "James": [2,122.6,7],
        "Chris": [3,120.4,12]
    },
    "Dr Clement": {
        "Hannah": [1,126.9,2.56],
        "Gill": [2,124.54,6.89],
        "Jack": [3,122.04,15.62],
        "Jamie": [4,121.09,20.91]
    }
}

to_remove = ["Jamie", "Rosie"]

# Mrs. Dodgson's class data, initially.
print data["Mrs Dodgson"]

# Now remove the student data.
for cls_data in data.values():
    for student in to_remove:
        try:
            del cls_data[student]
        except KeyError:
            pass

print data["Mrs Dodgson"]
于 2013-07-07T22:54:21.400 回答