>>> 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次两次.
我知道我可以将网格子集化为前三行,如下所示:
>>> 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 usingzip(*[iter(s)]*n)
.
(对于子孙后代,问题来自Codefights will be hidden until unlocked)
任何帮助是极大的赞赏.谢谢.
解决方法 没有拉链但是 [行[:3]表示网格中的行[:3]] 总结以上是内存溢出为你收集整理的python – 是否可以使用带有步骤参数的“zip()”?全部内容,希望文章能够帮你解决python – 是否可以使用带有步骤参数的“zip()”?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)