You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python pathway函数生成路径组合时元素被拼接如何修复

问题说明

编写路径生成函数,要求返回包含所有可能城市组合的嵌套列表。

  • 预期输出:
[['Moscow', 'Oslo', 'Boston', 'Berlin'],
 ['Moscow', 'Oslo', 'Sydney', 'Berlin'],
 ['Moscow', 'Paris', 'Boston', 'Berlin'],
 ['Moscow', 'Paris', 'Sydney', 'Berlin']]
  • 测试调用方式:pathway('Moscow', [['Oslo', 'Paris'], ['Boston', 'Sydney']], 'Berlin')
  • 实际错误输出:
[['Moscow', 'Oslo, Boston', 'Berlin'],
 ['Moscow', 'Oslo, Sydney', 'Berlin'],
 ['Moscow', 'Paris, Boston', 'Berlin'],
 ['Moscow', 'Paris, Sydney', 'Berlin']]
  • 原有问题代码:
def pathway(city_from, city_array, city_to):
    paths = []
    cities = itertools.product(*city_array)
    cities = [', '.join(map(str, x)) for x in cities]
    for i in cities:
        i = str(i)
        path = city_from, i, city_to
        paths.append(list(path))
    return paths
错误原因

原有代码使用', '.join()将itertools.product()生成的多元素中间城市元组拼接成了单个字符串,导致每组中间的两个城市被合并为一个列表元素,没有拆分为独立项。

修改后代码

移除不必要的字符串拼接逻辑,直接将起点、每组中间城市、终点解包拼接为列表即可:

import itertools

def pathway(city_from, city_array, city_to):
    paths = []
    for mid_group in itertools.product(*city_array):
        # 解包中间城市组,和起点、终点合并为完整路径
        paths.append([city_from, *mid_group, city_to])
    return paths

调用后输出和预期结果完全一致。

内容的提问来源于stack exchange,提问作者lzvtmtvv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:27:17