在对角列表中转换的原始矩阵的返回索引-Python 3

在对角列表中转换的原始矩阵的返回索引-Python 3,python,python-3.x,matrix,diagonal,Python,Python 3.x,Matrix,Diagonal,最初我有一个单词搜索谜题,我的目标是根据前面的单词列表找到其中的单词。我能够成功地在水平线和垂直线中找到单词,但是我很难找到对角线 我的主要想法是将我输入的字母连接成一个大字符串,然后搜索这个字符串中的单词,返回单词所属的行,然后检查它的起始位置,依此类推 对于我的对角线,我也有同样的计划,但假设这是我的输入: c l i o a e a g b e a r t l s j i a u a e e q u b e u g r r c i d e p b i o s b 2 cat big 一旦

最初我有一个单词搜索谜题,我的目标是根据前面的单词列表找到其中的单词。我能够成功地在水平线和垂直线中找到单词,但是我很难找到对角线

我的主要想法是将我输入的字母连接成一个大字符串,然后搜索这个字符串中的单词,返回单词所属的行,然后检查它的起始位置,依此类推

对于我的对角线,我也有同样的计划,但假设这是我的输入:

c l i o a
e a g b e
a r t l s
j i a u a
e e q u b
e u g r r
c i d e p
b i o s b
2
cat
big
一旦我在一个连接列表中转换我的对角线,这就是我得到的:

# first diagonal
first_diag = ['b', 'ci', 'eio', 'euds', 'jegeb', 'aiqrp', 'eraur', 'catub', 'lgla', 'ibs', 'oe', 'a']

# second diagonal
sec_diag = ['c', 'le', 'iaa', 'ogrj', 'abtie', 'elaee', 'suquc', 'augib', 'brdi', 'reo', 'ps', 'b']
从这一点出发,我将在我的原始拼图中,单词cat位于第0行和第0列。单词big[8][0]也是如此

预期产出:

c . . . .
. a . . .
. . t . .
. . . . .
. . . . .
. . g . .
. i . . .
b . . . .
我怎样才能做到这一点,或者还有其他方法吗?提前通知tnx


编辑:如果需要,我可以发布我的代码。

首先,我将对角线字符串的行/列值存储在四个数组中。 假设矩阵有nr行和nc列,那么

first_diag_r = [max(nr - 1 - i, 0) for i, _ in enumerate(first_diag)]

相应地,对于第二个诊断

现在,如果您在其中找到一个单词,它不是像上面两个示例那样位于对角线字符串的开头,则必须计算该偏移量:
对于第一个诊断,这意味着将偏移量添加到列值,并从行值中减去偏移量。

也许迟早会需要这些代码,但一开始并不清楚您已经有了什么,以及您想在这里问什么问题。e、 g.第一条和第二条对角线-算法是否已经存在-或者是否以您喜欢的方式…?将进行编辑,但我拥有的是这两条对角线的列表。我想返回索引,告诉我在我的原始拼图中单词的起始位置。我还可以检查单词在我的对角线列表中的位置,例如,只需执行cat in first_mat[I]。在这种情况下,i=7,但它不是从第7行开始,而是从第0行开始。检查列也会发生同样的情况。希望我说清楚
first_diag_c = [min(i, nc - 1) for i, _ in enumerate(first_diag)]