使用 Python 同时为列表中的每个项目运行一个函数



我有一个包含 500 多个元素的列表,我想同时为列表中的每个元素运行一个函数,我该怎么做?

该解决方案将加快该过程,而且我的代码将更短。

我在Instagram上使用一个库,并从该库获取值需要很多时间。我已经用线程管理了它的速度,但我正在处理列表中的大量值。每个元素都是一个用户名,所以我想同时访问 500 个用户的个人资料并从中收集一些数据(发布图片、评论数量、喜欢数量......

对于每个用户,收集数据大约需要 1-2 秒。这意味着收集 1000 个用户的数据将需要 1000-2000 秒。 所以我试图通过同时对列表中的每个项目运行相同的函数来加快速度。

我正在阅读一些关于threading的内容,并且我做了这样的东西,但是如果我列表中有 500 个元素怎么办:

import threading
list_of_results = []
list_of_values = [1,2,3]
def one(list_of_values, list_of_results):
result = 0
for i in range(0,5000):
result = list_of_values[0] + i
list_of_results.append(result)
def two(list_of_values, list_of_results):
result = 0
for i in range(0,5000):
result = list_of_values[1] + i
list_of_results.append(result)
def three(list_of_values, list_of_results):
result = 0
for i in range(0,5000):
result = list_of_values[2] + i
list_of_results.append(result)
t1 = threading.Thread(target = one, args = (list_of_values, list_of_results))
t2 = threading.Thread(target = two, args = (list_of_values, list_of_results))
t3 = threading.Thread(target = three, args = (list_of_values, list_of_results))
t1.start()
t2.start()
t3.start()
t1.join()
t2.join()
t3.join()
print(list_of_results)

您不能一次执行 500 个操作。 你的电脑是连续的。线程可能会帮助您进行更复杂的操作 => 它将在PC的每个内核上创建一个进程。

看起来你需要在另一个 for 循环中编写一个 for 循环。

你到底想用这500个元素做什么?

也许你需要这样的东西?

for j in range(0, 500)
for i in range(0,5000):
result = list_of_values[j] + i

相关内容

  • 没有找到相关文章

最新更新