在庞大的元组列表中优化循环

我有一个名为permuted_trucks的元组列表,大小为38320568,列表中的每个元组都有7个值,我正尝试将所有元组的值总和插入到另一个列表中。

在下面的代码中,cargo_list是一个包含货物名称的列表(np数组大小7) distances_df是(44,7)pd数据帧

我正在运行此循环:

for i in range(0, len(permuted_trucks)):
    total_distance = 0.0
    for j in range(0, len(cargo_list)):
        truck_index = np.where(truck_list == permuted_trucks[i][j])[0][0]
        total_distance += distances_df.iloc[truck_index][j]
    if (total_distance < 0 or total_distance < best_distance):
        best_distance = total_distance
        best_distance_index = i
    all_distances_index.append(i)
    all_distances.append(total_distance)

问题是它的速度很慢..我正在寻找解决方案以优化它 有人可以帮忙吗?