开发者社区> 问答> 正文

用于在数百个列表之间进行元素智能操作的通用算法

我的任务是为一个项目编写一个算法。基本上,我扫描数据以获得唯一的项并将它们的位置存储在一个数组中。所以我得到了可变长度的多个数组。现在我必须对所有这些数组和它们的元素进行元素操作。请注意,这些总是被排序的(如果这很重要的话)

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这样的python解决方案,但是我的老师要求这里有一个通用的独立于语言的解决方案。 我不太确定如何处理这个问题。一种方法是使用树或图这样的数据结构并遍历它?另一种方法是在循环的第i次迭代中对数组的所有第i个元素执行操作。这样,主循环将运行最长数组的长度。我只是真的很困惑,我很想知道我应该走的方向。 问题来源StackOverflow 地址:/questions/59382875/generic-algorithm-for-element-wise-operation-between-hundreds-of-lists

展开
收起
kun坤 2019-12-27 16:58:38 412 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载