gpt4 book ai didi

python - 实现 Every-to-Every 交互的有效方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:49:06 25 4
gpt4 key购买 nike

给定一个元素列表,如果每个元素都需要了解此列表中每个其他元素的状态,如何处理所有元素?

例如,在 Python 中实现它的直接方法可能是:

S = [1,2,3,4]
for e in S:
for j in S:
if e!=j:
process_it(e,j)

但如果元素数量很大,它会非常慢 O(n²)。必须有另一种有效的方法,也涉及并发性。你能帮帮我吗?

最佳答案

如果您需要处理每一对项目,则有 O(n2) 对,因此您将不得不进行那么多次调用!

如果您只需要组合(ab、ac、bc),而不需要所有排列(ab、ba、ac、ca、bc、cb),那么您可以这样做,将调用次数减半(并跳过if):

for idA,val in enumerate(items):
for idB in range(0, idA):
process_it(val,items[idB])

改进它的唯一方法是找到一种方法来分解您的 process_it 例程,以便它可以处理多对。没有更多信息,我们无法提供太多建议。

关于python - 实现 Every-to-Every 交互的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288849/

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