python - 按特定列表(边缘权重)对图进行元组排序

标签 python

我开发了一个如下所示的元组:

(['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

最佳答案

使用 zipsorted功能:

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/

相关文章:

python - 如何让 Selenium 与 Scrapy 并行运行?

python - Python中的"Interfaces": Yea or Nay?

python - 嵌套一个函数

python - 为什么 turtle.circle(r,extent=720,steps=5) 在 python 中画了一颗星?

python - 如何在 HTML/CSS 中整齐地格式化代码?如果可以的话,我特别想使用 Python Docutils 的数字圆标注

python - 在python中解析html值

python - Scrapy尝试抓取网页的信息内部链接

python - 在 io.TextIOWrapper 中包装 urllib3.HTTPResponse

用于项目列表的 Python,到单个字符串?

python - 尝试清理安装 python (anaconda),出现与先前安装相关的错误