在matrix-python中搜索
我需要写一个函数来搜索矩阵中的单词。目前我正在逐行搜索,看看这个词是否存在。这是我的代码:在matrix-python中搜索,python,matrix,wordsearch,Python,Matrix,Wordsearch,我需要写一个函数来搜索矩阵中的单词。目前我正在逐行搜索,看看这个词是否存在。这是我的代码: def search(p): w=[] for i in p: w.append(i) s=read_wordsearch() #This is my matrix full of letters for line in s: l=[] for letter in line: l.append(le
def search(p):
w=[]
for i in p:
w.append(i)
s=read_wordsearch() #This is my matrix full of letters
for line in s:
l=[]
for letter in line:
l.append(letter)
if w==l:
return True
else:
pass
只有当我的单词从行的第一个位置开始时,此代码才起作用
例如,我有一个矩阵:
[[a,f,l,y],[h,e,r,e],[b,n,o,i]]
我想找到单词“fly”,但找不到,因为我的代码只能找到像“here”或“her”这样的单词,因为它们从一行的第一个位置开始
任何形式的帮助、暗示、建议都将不胜感激。(如果我的英语不好,很抱歉…我会给你一个提示,在文本中搜索一个单词。我认为你将能够推断出你的数据矩阵
s = "xxxxxxxxxhiddenxxxxxxxxxxx"
target = "hidden"
for i in xrange(len(s)-len(target)):
if s[i:i+len(target)] == target:
print "Found it at index",i
break
如果您想搜索所有长度的单词,如果您有可能的解决方案列表:
s = "xxxxxxxxxhiddenxxxtreasurexxxxxxxx"
targets = ["hidden","treasure"]
for i in xrange(len(s)-1):
for j in xrange(i+1,len(s)):
if s[i:j] in targets:
print "Found",s[i:j],"at index",
编辑:Python中已经有很多字符串函数可用。您只需要使用字符串就可以使用它们。您可以将矩阵中的每一行转换为字符串,并尝试在其中查找搜索工作
def search(p):
s=read_wordsearch()
for line in s:
if p in ''.join(line):
return True
将内部列表中的字符连接起来,创建一个单词,并在
中使用进行搜索
def search(word, data):
return any(word in ''.join(characters) for characters in data)
data = [['a','f','l','y'], ['h','e','r','e'], ['b','n','o','i']]
if search('fly', data):
print('found')
数据
包含矩阵,字符
是每个内部列表的名称<代码>任何
在找到第一个匹配项(短路)后都将停止。转换为字符串后查找字符串?既然您有很多不同的解决方案,请选择一个并接受它。这看起来像是前Java或PHP开发人员编写的Python。
def search(word, data):
return any(word in ''.join(characters) for characters in data)
data = [['a','f','l','y'], ['h','e','r','e'], ['b','n','o','i']]
if search('fly', data):
print('found')