相关疑难解决方法(0)

了解切片表示法

我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).

对我来说,这种符号需要一点点提升.

它看起来非常强大,但我还没有完全了解它.

python iterable list slice

3024
推荐指数
33
解决办法
159万
查看次数

你如何旋转二维数组?

灵感来自Raymond Chen的帖子,假设你有一个4x4二维数组,写一个旋转90度的函数.Raymond链接到伪代码的解决方案,但我希望看到一些现实世界的东西.

[1][2][3][4]
[5][6][7][8]
[9][0][1][2]
[3][4][5][6]
Run Code Online (Sandbox Code Playgroud)

变为:

[3][9][5][1]
[4][0][6][2]
[5][1][7][3]
[6][2][8][4]
Run Code Online (Sandbox Code Playgroud)

更新:尼克的答案是最直接的,但有没有办法比n ^ 2做得更好?如果矩阵是10000x10000怎么办?

algorithm matrix multidimensional-array

295
推荐指数
16
解决办法
29万
查看次数

在Python中旋转二维数组

在一个程序中,我写的是需要旋转一个二维数组.寻找最佳解决方案我找到了这个令人印象深刻的单线工作:

rotated = zip(*original[::-1])
Run Code Online (Sandbox Code Playgroud)

我现在正在我的程序中使用它,它可以正常运行.我的问题是,我不明白它是如何工作的.

如果有人能解释所涉及的不同功能如何达到预期效果,我将不胜感激.

python multidimensional-array

104
推荐指数
4
解决办法
8万
查看次数

Python - 确定井字游戏的赢家

我正在尝试编写一个代码来确定井字游戏的获胜者。(这是一个大学作业)

为此,我编写了以下函数:

这段代码只检查水平线,我没有添加其余的。我觉得这是需要一些硬编码的东西。

def iswinner(board, decorator):
    win = True
    for row in range(len(board)):
        for col in range(len(board)):
            if board[row][col] == decorator:
                win = True
            else:
                win = False
                break
Run Code Online (Sandbox Code Playgroud)

其中“board”是大小为 n^2 的二维数组,“decorator”是“X”或“O”值

我希望完成的是该函数循环遍历二维数组的行。然后循环遍历每一行中的值。如果该元素与“装饰器”匹配,则它继续并检查下一个,但如果不匹配,则它从第一个循环中断并转到下一行。它会这样做,直到在同一行中找到 n 个元素。然后它会给出一个布尔值 True 否则为 False。

代码似乎没有这样做,即使我检查了以下“板”,它也给了我“真”的输出

check_list = [['O', 'X', 'X'],
              ['O', 'X', 'O'],
              ['O', 'X', 'X']]
Run Code Online (Sandbox Code Playgroud)

非常感谢!

最好的,赛义德

python arrays loops boolean break

5
推荐指数
2
解决办法
2万
查看次数