gpt4 book ai didi

python - 找到元组对的所有可能组合,将每个组合合并成新序列

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:52 25 4
gpt4 key购买 nike

我有一条公交路线按以下顺序(地点序列)行驶:-

Ayr - Newton - Troon - Paisley - Glasgow

route = ['Ayr', 'Newton', 'Troon', 'Paisley', 'Glasgow']

我需要找到所有可能的方式来拆分旅程(总是从 Ayr 开始到 Glasgow 结束,所以我有代码 (python) 可以找到每对组合并将每对(元组)附加到列表中。

pairs = [('Ayr', 'Newton'),('Ayr', 'Troon'),('Ayr', 'Paisley'),('Ayr', 'Glasgow'),('Newton', 'Troon'),('Newton', 'Paisley'),('Newton', 'Glasgow'),('Troon', 'Paisley'),('Troon', 'Glasgow'),('Paisley', 'Glasgow')]

我想要结束的是一个列表列表或元组列表(或最快的最有效内存序列),其中包含所有可能的对组合(从 Ayr 开始到 Glasgow 结束)。

final_splits = [['Ayr', 'Glasgow'], ['Ayr', 'Newton', 'Glasgow'], ['Ayr', 'Newton', 'Troon', 'Glasgow'], ['Ayr', 'Newton', 'Troon', 'Paisley', 'Glasgow'], ['Ayr', 'Troon', 'Glasgow'], ['Ayr', 'Troon', 'Glasgow'], ['Ayr', 'Troon', 'Paisley', 'Glasgow']..........etc]

不容易啊!谁能帮忙?

最佳答案

假设每个组合都会成对出现,则无需计算中间步骤

>>> from itertools import combinations
>>> route = ['Ayr', 'Newton', 'Troon', 'Paisley', 'Glasgow']
>>> [(route[0],)+x+(route[-1],) for i in range(len(route)-1) for x in combinations(route[1:-1],i)]
[('Ayr', 'Glasgow'), ('Ayr', 'Newton', 'Glasgow'), ('Ayr', 'Troon', 'Glasgow'), ('Ayr', 'Paisley', 'Glasgow'), ('Ayr', 'Newton', 'Troon', 'Glasgow'), ('Ayr', 'Newton', 'Paisley', 'Glasgow'), ('Ayr', 'Troon', 'Paisley', 'Glasgow'), ('Ayr', 'Newton', 'Troon', 'Paisley', 'Glasgow')]

关于python - 找到元组对的所有可能组合,将每个组合合并成新序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10098197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com