在python中使用大型数组

2024-09-29 23:23:08 发布

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

我有三个数组,如下所示:

  1. users-包含50000个用户的id(全部不同)
  2. pusers-包含拥有一些帖子的用户的id(也包含重复的id,也就是说,一个用户可以拥有多个帖子)[50000个值]
  3. score-包含与puser中每个值对应的分数。[50000个值]

现在我想根据下面的计算填充另一个数组PScore。对于pusersusers的每个值,我需要获取相应的score,并将其添加到与user对应的索引中的PScore数组中。在

例如

if users[5] = 23224
and pusers[6] = pusers[97] = 23224 
then PScore[5] += score[6]+score[97]

注意事项:

  • scorepusers相关(例如,pusers[5]有{})
  • PScore预计与users相关(例如,users[5]的累积分数是Pscore[5]
  • 最终目标是为拥有它的用户分配一个帖子的累计分数。在
  • 不拥有任何帖子的用户将被分配一个0的score。在

有人能帮我吗?我试了很多次,但是一旦我运行了不同的测试,输出屏幕一直是空白的,直到我离开。在

我浏览了下面所有的帖子,但是我不能有效地将它们用于我的场景。在

我是这个论坛的新手,也是Python的初学者。任何帮助对我都会很有用的。在

附加信息

  • 我正在做一个使用StackOverflow数据的小项目。在
  • 我正在使用Orange工具,我正在学习这个工具和python。在

好吧,我知道我的方法有问题。那么我不应该在这个场景中使用列表吗?有谁能告诉我该怎么做吗?在

我得到的数据示例如下所示。在

^{pr2}$

我想要的就是每个用户的总分。同样,pusers列表包含重复,而users列表包含唯一值。我需要以这样一种方式存储与每个用户相关联的总分,如果我说PScore[6],它应该指与User[6]相关联的总分。在

希望我能回答你的问题。在

提前谢谢。在


Tags: 用户inid列表if场景数组users
2条回答

我认为你的算法要么错了要么坏了。 试着计算它的复杂性。如果是N^2或更多,则可能使用了效率低下的算法。O(N^2)包含50000个元素应该需要几秒钟的时间。O(N^3)可能需要几分钟。 如果你确定你的方法,试着用一些小的假数据运行它,看看它是否正确,或者是否意外地添加了一些无限循环。在

你可以很容易地让它在线性时间内使用字典。在

因为你使用的python和你的字典里的数组看起来很完美。在

您应该能够制作一个字典,将用户id映射到分数,而不是将一个数组用于post owner和另一个数组用于post score。当你接收数据时,查一下字典看看这个用户是否已经存在。如果是,则将分数加到当前分数中。如果没有,请重新输入。当你循环浏览所有数据时,你应该有一个从用户id映射到总分的字典。在

http://docs.python.org/2/tutorial/datastructures.html#dictionaries

相关问题 更多 >

    热门问题