def find_word_horizontal(crosswords,word):
for rows in crosswords:
string=''.join(rows)
if word in string:
#finding index
row_index=crosswords.index(rows)
column_index=rows.index(word[0])
return [row_index,column_index ]
return None
def find_word_vertical(crosswords,word):
z=[list(i) for i in zip(*crosswords)]
for rows in z:
row_index = z.index(rows)
single_row = ''.join(rows)
column_index = single_row.find(word)
if column_index >= 0:
return([column_index, row_index])
def capitalize_word_in_crossword(crosswords,word):
if find_word_horizontal or find_word_vertical is not True:
result = []
for w in crosswords:
for l in w:
if l in word:
result.append(l.upper())
else:
result.append(l)
return result
#return [[l.upper() if l in word else l for l in w] for w in crosswords]
crosswords=[['s','d','o','g'],['c','u','c','m'],['a','c','a','t'],['t','e','t','k']]
word='cat'
print(capitalize_word_in_crossword(crosswords,word))
这是在纵横字谜中查找特定单词的代码。
在这里,我开发了两个帮助函数来水平和垂直查找单词。如果同时找到水平和垂直匹配,则只返回水平匹配,并将二维列表中匹配的字符大写并返回列表。e、 例如,在我的上述代码中,它应该打印:
[['s','d','o','g'],['c','u','c','m'],['a','C','A','T'],['t','e','t','k']]
如果找不到匹配项,此函数只返回原始二维列表,不做任何修改。
但我的代码返回
['s','d','o','g','C','u','C','m','A','C','A','T','T','e','T','k']