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

C++双层for循环转Python代码的正确性校验及优化方案咨询

代码问题校验

你编写的Python代码存在以下几个明显错误:

  • 索引使用错误:原C++代码逻辑是打印下标为i和j的元素,你的代码里固定写死了array[1]、arr[2],还出现了变量名不统一(前半段用array后半段用arr)的问题,运行要么报错要么输出完全不符合预期
  • 未封装为函数:原C++逻辑是接收数组参数的函数,你写的零散脚本如果没有提前定义array变量,直接运行会报NameError
  • 写法不符合Python常用规范:用while循环模拟C风格for循环的写法冗余,容易出现索引维护错误
对齐原C++逻辑的修正代码

如果你要完全对应C++的实现逻辑,修正后的代码如下:

def print_unordered_pairs(array):
    i = 0
    while i < len(array):
        j = i + 1
        while j < len(array):
            # 按原逻辑输出用逗号分隔的两个元素
            print(f"{array[i]},{array[j]}")
            j += 1
        i += 1
更优化的Python实现

Python标准库itertools里的combinations方法原生支持生成可迭代对象中长度为k的无序不重复元素组合,正好匹配你要实现的功能,代码更简洁、性能更高,也避免了手动维护索引的问题:

from itertools import combinations

def print_unordered_pairs(array):
    for a, b in combinations(array, 2):
        print(f"{a},{b}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:45:07