加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 是否可以使用带有步骤参数的“zip()”?

发布时间:2020-12-20 12:01:11 所属栏目:Python 来源:网络整理
导读:我想使用zip()方法在 Python中提取2D数组的一个非常特定的部分(并避免凌乱的循环逻辑).我想使用zip来实现这样的目标: sub_matrix = list(zip([*grid[0:3]]*3))# Desired output example (Option 1)[".","4",".","."]# Desired output example (Option 2)[["
我想使用zip()方法在 Python中提取2D数组的一个非常特定的部分(并避免凌乱的循环逻辑).我想使用zip来实现这样的目标:

>>> sub_matrix = list(zip([*grid[0:3]]*3))

# Desired output example (Option 1)
[".","4",".","."]

# Desired output example (Option 2)
[[".","."],[".","4"],"."]]

我正在使用Python下面的2D数组处理面试实践问题.

grid = [[".","1","7","3","6","9","2","8","."]]

解决问题的一部分涉及确保数独游戏中的每个3 x 3“区域”包含合法值.我想用zip()快速提取矩阵的3 x 3部分.例如,左上角区域会导致测试失败,因为它包含4次两次.

enter image description here

我知道我可以将网格子集化为前三行,如下所示:

>>> sub_grid = grid[0:3]
    >>> print(sub_grid)
    [['.','4','.','.'],['.','1','7','.']]

我稍微修改了一下打印以使其显而易见,但此时,我想使用’step’为3来压缩三个数组,这样每个新数组将从每个数组中压缩3个值,然后再继续下一个.

在Python3 docs on zip中有一个关于我如何认为可以做到这一点的摘录,但我无法获得所需的输出.

The left-to-right evaluation order of the iterables is guaranteed.
This makes possible an idiom for clustering a data series into
n-length groups using zip(*[iter(s)]*n).

(对于子孙后代,问题来自CodeFights will be hidden until unlocked)

任何帮助是极大的赞赏.谢谢.

解决方法

没有拉链但是 [行[:3]表示网格中的行[:3]]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读