Python 列表中列表的总和
这是我的列表,由多个列表组成。列表中的每个列表都是一条路由 每个数字代表一个位置。0是总部,因此每个列表都以0开头和结尾。我有一个距离矩阵来确定位置之间的距离。所以我制作了这个元组列表,用距离数据框计算距离,比如距离矩阵[I][j]给出了位置I和j之间的距离Python 列表中列表的总和,python,list,Python,List,这是我的列表,由多个列表组成。列表中的每个列表都是一条路由 每个数字代表一个位置。0是总部,因此每个列表都以0开头和结尾。我有一个距离矩阵来确定位置之间的距离。所以我制作了这个元组列表,用距离数据框计算距离,比如距离矩阵[I][j]给出了位置I和j之间的距离 [[0, 78, 126, 27, 79, 65, 48, 127, 75, 96, 34, 0], [0, 54, 57, 102, 133, 82, 59, 124, 66, 67, 2, 45, 56, 0], [0, 60, 80,
[[0, 78, 126, 27, 79, 65, 48, 127, 75, 96, 34, 0],
[0, 54, 57, 102, 133, 82, 59, 124, 66, 67, 2, 45, 56, 0],
[0, 60, 80, 83, 101, 52, 98, 61, 87, 81, 35, 0],
[0, 71, 37, 49, 51, 50, 15, 30, 29, 31, 33, 28, 32, 38, 0],
[0, 131, 74, 16, 3, 95, 44, 73, 90, 22, 23, 0],
[0, 105, 8, 14, 63, 40, 41, 7, 130, 58, 92, 24, 0],
[0, 36, 114, 113, 18, 94, 10, 11, 108, 89, 86, 19, 55, 0],
[0, 111, 6, 43, 88, 109, 39, 53, 1, 9, 97, 64, 12, 0],
[0, 106, 99, 125, 20, 104, 129, 132, 119, 62, 68, 72, 13, 110, 0],
[0, 4, 46, 47, 122, 21, 117, 118, 93, 121, 25, 107, 0]]
这是我列表的一个子样本,由多个列表组成,其中包含元组,用于确定距离
现在每个元组都是距离矩阵中的一个位置,例如(0,78)给出了96km,它是位置0和位置78之间的距离
现在我需要每条路线的距离总和(因此列表中的每个列表)。因为当我不能把路线分开的时候
有人能帮我吗 假设您有一个
距离矩阵
,现在您要计算每行的总公里数。那就试试这个:
[[(0, 78), (78, 126), (126, 27), (27, 79), (79, 65), (65, 48), (48, 127), (127, 75), (75, 96), (96, 34), (34, 0)],
[(0, 54),(54, 57),(57, 102),(102, 133),(133, 82),(82, 59),(59, 124),(124, 66),(66, 67),(67, 2),(2, 45),(45, 56),(56, 0)],
[(0, 60),(60, 80),(80, 83),(83, 101),(101, 52),(52, 98),(98, 61),(61, 87),(87, 81),(81, 35),(35, 0)],
[(0, 71),(71, 37),(37, 49),(49, 51),(51, 50),(50, 15),(15, 30),(30, 29),(29, 31),(31, 33),(33, 28),(28, 32),(32, 38),(38, 0)]]
l=[[0,78,126,27,79,65,48,127,75,96,34,0],
[0, 54, 57, 102, 133, 82, 59, 124, 66, 67, 2, 45, 56, 0],
[0, 60, 80, 83, 101, 52, 98, 61, 87, 81, 35, 0],
[0, 71, 37, 49, 51, 50, 15, 30, 29, 31, 33, 28, 32, 38, 0],
[0, 131, 74, 16, 3, 95, 44, 73, 90, 22, 23, 0],
[0, 105, 8, 14, 63, 40, 41, 7, 130, 58, 92, 24, 0],
[0, 36, 114, 113, 18, 94, 10, 11, 108, 89, 86, 19, 55, 0],
[0, 111, 6, 43, 88, 109, 39, 53, 1, 9, 97, 64, 12, 0],
[0, 106, 99, 125, 20, 104, 129, 132, 119, 62, 68, 72, 13, 110, 0],
[0, 4, 46, 47, 122, 21, 117, 118, 93, 121, 25, 107, 0]]
距离=[]
对于l中的路径:
tot_dist=0
对于路径中的边:
总距离=总距离+距离矩阵[边[0],边[1]]
距离。附加(总距离)
打印(距离)
这(0,78)是如何给出96的?你从哪里得到这些信息?
your_list = [[0, 78, 126, 27, 79, 65, 48, 127, 75, 96, 34, 0],
[0, 54, 57, 102, 133, 82, 59, 124, 66, 67, 2, 45, 56, 0],
[0, 60, 80, 83, 101, 52, 98, 61, 87, 81, 35, 0],
[0, 71, 37, 49, 51, 50, 15, 30, 29, 31, 33, 28, 32, 38, 0],
[0, 131, 74, 16, 3, 95, 44, 73, 90, 22, 23, 0],
[0, 105, 8, 14, 63, 40, 41, 7, 130, 58, 92, 24, 0],
[0, 36, 114, 113, 18, 94, 10, 11, 108, 89, 86, 19, 55, 0],
[0, 111, 6, 43, 88, 109, 39, 53, 1, 9, 97, 64, 12, 0],
[0, 106, 99, 125, 20, 104, 129, 132, 119, 62, 68, 72, 13, 110, 0],
[0, 4, 46, 47, 122, 21, 117, 118, 93, 121, 25, 107, 0]]
distance_list = []
for route in your_list:
total_tmp = 0
for i in range(len(route)-1):
total_tmp += distance_matrix[route[i]][route[i+1]]
distance_list.append(total_tmp)