动态命名集还是其他方法?

2024-04-25 08:12:55 发布

您现在位置:Python中文网/ 问答频道 /正文

首先感谢你抽出时间来研究我的问题。与其简单地描述我想解决的问题的解决方案,我认为最好也概述一下问题,以便能够提出替代解决方案的想法。很可能有更好的方法来实现这个解决方案。你知道吗

我的问题是:

我生成的名单与相关联的得分排名和其他相关的价值观,这些名单是每天生成,但必须随着一天的进展,因为需要删除一些名字的结果。目前,这些名称列表是在基于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文档),这个列表是通过每两分钟更新一次的web scraper生成的。我目前认为解决这个问题的可行方法是使用一段代码,将CSV中的每个列表保存为一个集合(如果可能的话),然后在找到唯一的名称后,它会将它们从出现它们的集合中删除。你知道吗

我向python论坛提出的问题是

  1. 关于产生多个唯一命名集(每天最多60个)的方法是否可行
  2. 有没有更好的方法达到同样的效果?你知道吗

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

向AEA致以最诚挚的问候


Tags: 方法namein名称列表value解决方案excel
1条回答
网友
1楼 · 发布于 2024-04-25 08:12:55

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

这里有一种方法,每个类的数据都存储在一个字典中,字典的每个键都是一个学生的名字,字典的值是每个学生的分数等的列表:

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"]

相关问题 更多 >