数百个列表之间的元素明智操作的通用算法

时间:2019-12-17 22:14:38

标签: python arrays algorithm

我受命为项目编写算法。基本上,我扫描数据以获取唯一项并将其位置存储在数组中。所以我最终得到了多个长度可变的数组。现在,我必须对所有这些数组及其元素进行明智的操作。请注意,这些将始终进行排序(如果需要的话)

a = [0, 7, 13, 18]
b = [1, 2, 8, 10]
c = [0, 3, 5, 6, 7]

我当前拥有的解决方案是一个非常基本的循环解决方案,其中我遍历每个数组并将其元素与其他每个数组及其元素进行比较。它适用于少量数组,并且您可以想象,在我有很多独特项且每个项都有自己的数组/列表的情况下,效果不佳。

def add(a, b):
    result = []
    for i in range(len(a)):
        for j in range(len(b)):
            result.append(a[i] + b[j])
    return result


a = [0, 7, 13, 18]
b = [1, 2, 8, 10]
c = [0, 3, 5, 6, 7]
total_unique_items = [a, b, c]
calc = []


for i in range(len(total_unique_items)):
    for j in range(i+1, len(total_unique_items)):
        calc.append(add(total_unique_items[i], total_unique_items[j]))
    print(calc)

我知道有诸如zip之类的pythonic解决方案,但是我的老师要求在这里提供一种与语言无关的通用解决方案。

我不确定如何解决这个问题。一种方法是使用数据结构,例如树或图形并遍历它?另一种方法是找到一种在循环的第i次迭代中对所有数组的第i个元素执行操作的方法。这样,我的主循环将运行最长数组的长度。我对此真的很困惑,很想知道我应该从这里走的方向。

0 个答案:

没有答案