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

如何用Python的for循环实现符合特定规则的方格网格函数?

Python 实现 grid 函数

需求说明

输入一个列表,输出列表的列表形式的方格网格,每个子列表代表一行,需满足:

  • 每行、每列的每个值仅出现一次
  • 每一行由上一行将最后一个元素移至开头得到

实现代码

def grid(lst):
    grid_rows = []
    current = lst.copy()
    # 生成与输入列表长度一致的行数
    for _ in range(len(lst)):
        grid_rows.append(current.copy())
        # 把最后一个元素移到开头,生成下一行
        last_item = current.pop()
        current.insert(0, last_item)
    return grid_rows

代码解释

  1. 初始化空列表grid_rows用来存储最终的网格行数据
  2. 复制输入列表作为初始行current,防止后续操作修改原输入列表
  3. 通过for循环生成对应行数:
    • 将当前行的副本加入结果列表(如果直接添加current,后续修改会影响已存入的行)
    • 弹出当前行的最后一个元素,插入到列表开头,得到下一行的内容
  4. 循环完成后返回结果列表

测试示例

print(grid([1, 2, 3, 4]))
# 输出:[[1, 2, 3, 4], [4, 1, 2, 3], [3, 4, 1, 2], [2, 3, 4, 1]]

该实现自然满足规则:

  • 每行是原列表的循环移位,因此每行元素无重复
  • 每列对应原列表不同索引的循环取值,因此每列元素也不会重复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:35:23