我在做一个应用程序来寻找送货的最佳路径。
送货送过来的他道:
[
('0', '1'),
('1', '2'),
('0', '2'),
('2', '0')
]
......其中每对数字都是一个位置,最小的数字更接近。它们还会将它们的起点发送给我。例如:2
.
我做了一个从低到高排序的函数:
def lowToHigh(trajet):
trajet_opti = trajet
print(sorted(trajet_opti))
lowToHigh([
('0', '1'),
('1', '2'),
('0', '2'),
('2', '0')
])
输出如下:
[('0', '1'), ('0', '2'), ('1', '2'), ('2', '0')]
我需要一个函数,它将起始编号的元组放在第一位:
def starting_tuple():
starting_number = 2
.
.
.
它会传回类似下列的内容:
[('2', '0'), ('0', '1'), ('0', '2'), ('1', '2')]
2条答案
按热度按时间wko9yo5t1#
使用
key
进行排序,该key
添加另一个元组元素,表示列表项是否等于起始点。表达式
c[0] != '2'
对于起始点将为False
(0),对于所有其他点将为True
(1),这将强制起始点位于列表的开头。如果有多个起始点,则它们将相对于彼此正常排序。t2a7ltrp2#
要对元组列表进行排序,使具有起始编号的元组排在第一位,只需遍历元组列表并检查每个元组是否包含起始编号。如果包含,则将该元组移到列表的前面。下面是一个实现该操作的示例:
下面是如何使用此函数的示例:
请注意,此函数假定起始编号始终存在于元组列表中。您可能需要添加一些额外的错误检查,以处理起始编号不存在于列表中的情况。