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

如何用纯Python实现数组的逆时针循环输出(从9到5)

实现3x3数组从指定起点逆时针遍历到目标元素

首先要注意:你用{}定义的是集合,集合是无序的,无法保证元素的位置顺序,必须改成二维列表才能对应你描述的3行3列结构:

# 正确的二维列表结构,对应你给出的3行3列数组
arr = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

你需要的遍历顺序9 6 3 2 1 4 7 8 5,对应二维数组的坐标(行/列索引从0开始)路径是:(2,2) → (1,2) → (0,2) → (0,1) → (0,0) → (1,0) → (2,0) → (2,1) → (1,1),可以分阶段实现遍历:

# 定义正确的二维数组
arr = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

result = []

# 阶段1:最后一列从下到上(9,6,3)
for row in reversed(range(3)):
    result.append(arr[row][2])

# 阶段2:第一行从右到左(2,1)
for col in reversed(range(2)):
    result.append(arr[0][col])

# 阶段3:第一列从上到下(4,7)
for row in range(1, 3):
    result.append(arr[row][0])

# 阶段4:第三行从左到右取8,再加上中间的5
result.append(arr[2][1])
result.append(arr[1][1])

# 按要求格式输出
print(' '.join(map(str, result)))

运行这段代码会输出:9 6 3 2 1 4 7 8 5,完全符合你的需求。

你原来的代码存在两个问题:一是用集合导致元素顺序不可控,二是仅简单反转列表,没有按照指定的逆时针路径遍历,因此无法得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:01:00