我开发了一个如下所示的元组:
(['Austin', 'Austin', 'Houston', 'Dallas', 'Dallas', 'San Antonio'], ['San Antonio', 'El Paso', 'Austin', 'Austin', 'Houston', 'El Paso'], [1, 8, 3, 7, 3, 8])
每个城市名称都是一个标签,第三个列表中的数字代表顶点的边权重。我如何能够通过第三组对这个元组进行排序,从而允许根据权重对顶点进行排序。例如,
Austin--San Antonio 1
Houston--Austin 3
Dallas--Houston 3
Dallas--Austin 7
Austin--El Paso 8
San Antonio--El Paso 8
最佳答案
In [54]: srtd = sorted(zip(*t), key=lambda x: x[-1])
In [55]: srtd
Out[55]:
[('Austin', 'San Antonio', 1),
('Houston', 'Austin', 3),
('Dallas', 'Houston', 3),
('Dallas', 'Austin', 7),
('Austin', 'El Paso', 8),
('San Antonio', 'El Paso', 8)]
t
是您的元组。如果您需要将结果转换回元组
:
In [56]: tuple(zip(*srtd))
Out[56]:
(('Austin', 'Houston', 'Dallas', 'Dallas', 'Austin', 'San Antonio'),
('San Antonio', 'Austin', 'Houston', 'Austin', 'El Paso', 'El Paso'),
(1, 3, 3, 7, 8, 8))
关于python - 按特定列表(边缘权重)对图进行元组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30166821/