如何创建将返回特定字母的行和列的函数find_letter
?我尝试使用if(letter in table):
,但它使用原始表格。如果我写if(letter in create_table()):
它告诉我,这些函数是不可迭代的。我也不知道如何返回给定字母的行和列。如何从python中的表中返回行和列?
我放弃了创建一个新的函数来查找行和列,所以我试图包括一个代码与create_table
函数,但我不知道它。
如何创建将返回特定字母的行和列的函数find_letter
?我尝试使用if(letter in table):
,但它使用原始表格。如果我写if(letter in create_table()):
它告诉我,这些函数是不可迭代的。我也不知道如何返回给定字母的行和列。如何从python中的表中返回行和列?
我放弃了创建一个新的函数来查找行和列,所以我试图包括一个代码与create_table
函数,但我不知道它。
要找到表中所需字符的位置,您可以执行此操作。结果是包含行号和列号的元组。
def find_character(target_table, character):
for row in range(len(target_table)):
for column in range(len(target_table[row])):
if target_table[row][column] == character:
return row,column
如何使用create_table(secret)中的表格?如果我定义了一个新的函数find_character和call table,它将使用原始的函数。 –
更新了它。您可以将您的表作为参数传递给此方法。 – grael
它带来一个错误,说的对象noneType没有len() –
以下是一个残酷的解决方案(它假设字符在表中)。
它返回一个包含行号和列号的元组。
def find_character(character, table):
flat_table = [el for row in table for el in row]
i = flat_table.index(character)
return i/5, i % 5
row, col = find_character(letter, table)
如果该表是有序的,可以简化为
def find_character(character):
i = ord(character) - ord('A') # use 65 if you prefer
return i/5, i % 5
row, col = find_character(letter)
顺便说,建立这样排序表的快捷方式可以
from string import ascii_uppercase
itr = [iter(ascii_uppercase[:-1])] * 5
table = [list(z) for z in zip(*itr)]
它看起来像'CREATE_TABLE '应该修改'table'或者返回一些东西;目前它没有。另外,你为什么要输入numpy而不使用它? – lvc
我被卡住了,并试图从字面上尽我所能。 create_table()将表格放入我显示的字母表中,我没有在问题中缩进。我修好了它。 –
*“不必要的顺序”* - 如果顺序无关紧要,并且原始表的大小是硬编码的,那么为什么不用任何替代内容的逻辑静态创建该表? – poke