如何創建將返回特定字母的行和列的函數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