Python 从矩阵中的列和行打印数据

Python 从矩阵中的列和行打印数据,python,Python,假设我有一个这样的矩阵 table = [ # grid: 4 by 9 ['A','B','C','D'], ['E','F','G','H'], ['I','J','K','L'], ['M','N','O','P'], ['Q','R','S','T'], ['U','V','W','X'], ['Y','Z','1','2'], ['3','4','5','5'], ['7','8','9','0'], ] 如果我想在第三列(2x,3y)上打印两个向下的字符串,结果是G.或沿着线条的

假设我有一个这样的矩阵

table =  [
# grid: 4 by 9
['A','B','C','D'],
['E','F','G','H'],
['I','J','K','L'],
['M','N','O','P'],
['Q','R','S','T'],
['U','V','W','X'],
['Y','Z','1','2'],
['3','4','5','5'],
['7','8','9','0'],
]
如果我想在第三列(2x,3y)上打印两个向下的字符串,结果是G.或沿着线条的某个东西。我如何告诉python它应该是一个网格?还有我如何返回列表信息,table.find(某些东西)不起作用(说table没有find属性),我对python相当陌生。我在网上搜索过,没有得到多少帮助

编辑:我一定是做错了什么

table =  [
# grid: 4 by 9
# 1   2   3   4  
['A','B','C','D'],#1
['E','F','G','H'],#2
['I','J','K','L'],#3
['M','N','O','P'],#4
['Q','R','S','T'],#5
['U','V','W','X'],#6
['Y','Z','1','2'],#7
['3','4','5','5'],#8
['7','8','9','0'],#9
]
print table[1][2], table[4][3]
打印O和T。 O是对的,但T不是,那是第五排,不是吗?”

我正在尝试用文本矩阵编写一个文本位置加密算法,就像一个著名的密码(我记不起名字了)


我想将上述打印的每个字母应用于原始输入捕获的文本,我以前使用过字典,但我想尝试这种行/列方法,如果可能的话,它将更难打破。

表[1][2]
将在第二行第三列给出值(因为索引从0开始)


更具体地说,您指定的是一个列表列表,因此
表[1]
将解析为
['E'、'F'、'G'、'H']
(整个列表中的第二项),然后将其中的第三个元素与
[2]
一起,将得到
'G'

表[1][2]
将给出第二行中的值,第三列(因为索引从0开始)

table =  [
['A','B','C','D'],
['E','F','G','H'],
['I','J','K','L'],
['M','N','O','P'],
['Q','R','S','T'],
['U','V','W','X'],
['Y','Z','1','2'],
['3','4','5','5'],
['7','8','9','0'],
]
# grid 4 by 9, 4 column, 9 row
rownum=3
colnum=2
print(table[rownum-1][colnum-1])

更具体地说,您指定的是列表列表,因此
表[1]
将解析为
['E','F','G','H']
(整个列表中的第二项),然后使用
[2]
获取其中的第三个元素将为您提供
'G'

列表索引从零开始,例如,列表中的第四个元素有索引3。您可以定义一个助手函数,以根据项目/列的“实际位置”获取它们

table =  [
['A','B','C','D'],
['E','F','G','H'],
['I','J','K','L'],
['M','N','O','P'],
['Q','R','S','T'],
['U','V','W','X'],
['Y','Z','1','2'],
['3','4','5','5'],
['7','8','9','0'],
]
# grid 4 by 9, 4 column, 9 row
rownum=3
colnum=2
print(table[rownum-1][colnum-1])

至于您的编辑,
表[1][2]
应该打印
G
,而不是
O
表[4][3]
正确地返回
T

列表索引从零开始,因此,例如,列表中的第四个元素具有索引3。您可以定义一个助手函数,以根据项目/列的“实际位置”获取它们

至于您的编辑,
表[1][2]
应该打印
G
,而不是
O
,并且
表[4][3]
正确地返回
T

您指的是什么

如果要使用矩阵,建议使用
numpy
(一个简单的示例):

还有一个经常被忽略的字符串方法,可以用来替换文本(无论您如何决定)

你指的是什么

如果要使用矩阵,建议使用
numpy
(一个简单的示例):

还有一个经常被忽略的字符串方法,可以用来替换文本(无论您如何决定)

>>> import numpy as np
>>> a = np.array(table)
>>> a
array([['A', 'B', 'C', 'D'],
       ['E', 'F', 'G', 'H'],
       ['I', 'J', 'K', 'L'],
       ['M', 'N', 'O', 'P'],
       ['Q', 'R', 'S', 'T'],
       ['U', 'V', 'W', 'X'],
       ['Y', 'Z', '1', '2'],
       ['3', '4', '5', '5'],
       ['7', '8', '9', '0']], 
      dtype='|S1')
>>> print a[1,2]
G
>>> np.where(a=='G')
(array([1]), array([2]))
>>> from string import maketrans
>>> trans = maketrans('AB', 'XY') # A->X, B->Y, everything else unchanged
>>> 'ABC'.translate(trans)
'XYC'