python - Python:如何垂直和对角读取数组的元素并查看它们是否与字符串列表的元素匹配
问题描述
我想知道是否有办法检查字符数组中是否有给定列表的单词。
这是我现在的代码:
import pprint
with open("C:/Users/luca/Desktop/Homework02/cp2_Animali.txt") as f:
contents = f.read()
output1, output2, output3,output4 = contents.split('\n\n\n', 3)
with open('output2.txt', 'w') as o1:
o1.write(output2)
with open('output3.txt', 'w') as o2:
o2.write(output3)
read1= open('output2.txt', 'r')
read2= open('output3.txt', 'r')
l1e=[]
for line in read1:
l1=list(line.replace('\n','').replace('\t',''))
l1e.append(l1)
pprint.pprint(l1e)
l2e=[]
for line in read2:
l2=str(line.replace('\n',''))
l2e.append(l2)
pprint.pprint(l2e)
直到现在我已经将文本文件分成两部分以获得包含网格的文本,然后转换为数组,而另一个包含我需要在网格中找到的单词的文本,单词可以重复并且相同字母可以用于更多的单词。
我的文本文件是(包括开头和结尾的空格,不包括'):
'
Z E B R E R G I T E
P A G A Z Z E L L A
O E I E N E E E E E
L T R N T O F A O T
L N A E N A I R P N
I E F E N M A A A O
R P F T M U M G R R
D R E I G N U N D E
O E C A R G P I O C
C S I N S E T T I O
C G H E P A R D O N
O M A T O P O P P I
C A A L L I R O G R
COCCODRILLO
ELEFANTE
GAZZELLA
GHEPARDO
GIAGUARO
GIRAFFE
GNU
GORILLA
IENE
INSETTI
IPPOPOTAMO
LEONE
LEOPARDO
PUMA
RAGNI
RINOCERONTE
SERPENTE
SCIMMIA
TIGRE
ZEBRE
'
解决方案
如果output2
是您的网格,让我们假设它是唯一的、连续的字符串而不是网格。这将使搜索更容易,让我们假设它有一个 lengthn
和 height m
。
output2 = "mystringwithagrid...."
n = 5
m = 4
然后我们可以遍历来自 的所有字符串output3
,并检查是否可以在 output2 中找到具有几种模式的字符串:
for string in output3:
length = len(string)
# search on each line
for i in range(m):
for j in range(n-length):
if output2[i*n+j:i*n+j+length] == string:
print("found horizontally at %d,%d" % (i, j))
# search in diagonal
for i in range(m-length):
for j in range(n-length):
if output2[i*n+j:i*n+j+length:n+1] == string:
print("found in diagonal at %d,%d" % (i, j))
添加您想要的其他模式,您就有了结果。
推荐阅读
- python - Python Pandas to_datetime 逐行
- python - 如果验证,如何关闭第一个窗口?
- python - Python,通过检查数据框中另外 3 列的信息来匹配 2 列的值
- javascript - 使用 Moment 时日期无效
- docker - 如何将 -v 标志转换为 Dockerfile VOLUME 参数
- kotlin - Intellij 插件:由 PsiFile.findElementAt() 返回的元素提供很少的语言/语法信息
- python - Tkinter 滚动条问题(索引到自定义范围的独立可滚动长度)
- mysql - 使用 Cloud SQL 客户端将数据导入 Cloud SQL 连接已结束
- python - 尝试从命令行启动 appium 服务器但不断收到此错误
- c# - 将批量数据插入一对多关系的表中