gpt4 book ai didi

python - 初学者 python 。为每个键存储不同数量的元素的最佳方法?

转载 作者:行者123 更新时间:2023-11-30 22:28:28 25 4
gpt4 key购买 nike

我是一个编程初学者(也是一个老年人),所以我真的不知道如何正确表达我想要的东西。我已尽力尽可能彻底地描述我的问题,非常感谢您的耐心!

我想存储与每个用户相关的获胜分数。

  • 每个用户都会有不同数量的获胜分数。
  • 我不需要分隔用户的名字和姓氏,它们都可以是一个字符串。
  • 我不需要以任何方式对分数进行排序,也不需要能够更改它们。
  • 我只需要能够在用户获胜时添加分数,并按获胜次数对用户进行排序。
  • 我会提取所有的获胜分数进行统计,但是统计不会关心什么分数属于什么用户。
  • 一旦程序停止,它就可以从内存中删除。

从我迄今为止的研究来看,我最好的选择似乎是创建一个用户类,我在其中存储一个列表并每次添加到列表中。或者为每个用户创建一个带有键的字典。但由于每个用户可能有不同数量的获胜分数,我不知道是否可以使用字典(除非每个键都与一个列表相关联?)。我认为我不需要像 numpy 数组这样的东西,因为我想创建非常简单的统计数据,而不用担心什么分数属于哪个用户。我需要考虑不要使用不必要的内存等,特别是因为每个用户可能有一百个获胜分数。但我无法真正找到关于字典与类的好处的明确信息。编程社区非常有帮助并且充满了答案,但不幸的是我经常不理解这些答案。

非常感谢我能得到的任何帮助!不要害怕告诉我我的想法很愚蠢,我想学习如何像程序员一样思考。

最佳答案

这是一个好问题,因为它讨论了两种可能的解决方案。基于类的解决方案和基于字典的解决方案。基于类的解决方案更加优雅和通用,因此我将描述该解决方案。

class User(object):
def __init__(self, scores, name): #Where scores is a list of their scores
self.scores = scores
self.name = name

def get_scores(self):
return self.scores

def get_sum(self):
return sum(self.scores)

def get_name(self):
return self.name

然后你可以做类似的事情

user_a = User([1,2,3], "Jerry Stewart")
user_b = User([1,3,12,13,110], "Godric Gryffindor")
user_c = User([8,10,11], "Jackie")
users = [user_a, user_b, user_c]

for user in users:
print "{} : {}".format(user.get_name(), user.get_sum())

希望这涵盖了您需要的基础知识!

关于python - 初学者 python 。为每个键存储不同数量的元素的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46599013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com