鉴于一首诗,我将如何使用以下内容构建短语:
这些数字是短语所在的坐标,行和列。 (1,1),(1,20),(3,60)
我的问题是,是否有人知道如何实现这一目标?
答案 0 :(得分:2)
好的,我会通过猜测来解决你的问题:
让你的诗成为一个文本文件,使它有一堆单词,最后是一个行尾字符(你只需点击输入即可编写)。该文件看起来像这样:
This is a poem
with many lines
much much lines.
现在您保存此文件并在同一文件夹上创建python脚本,以便您可以轻松打开它。
您的脚本现在将执行两项操作:首先使用您的诗打开文件并将其存储为字符串列表。这意味着我们将数组中的每个元素视为诗中的一行(第一个坐标点),每个元素由单词(第二个元素)组成。
因此,在代码中,您的脚本如下所示:
lines = []
with open('poem.txt', 'r') as poem:
for raw_line in poem:
line = raw_line.strip()
lines.append(line.split(" "))
如果我们打印我们的行数组,我们得到:
[['This', 'is', 'a', 'poem'], ['wtih', 'many', 'lines'], ['much', 'much', 'lines.']]
所以要完成,你的短语制作函数可以接受一个坐标数组,并将这些单词从行数组中带出来:
def phrases(coords, poem):
'''Takes in an array of tuples with x and y coordinates where x is
the line number and y is the word on that line. Also takes in the
poem array'''
phrase = ""
for coordinate in coords:
line = coordinate[0]
word = coordinate[1]
phrase += poem[line][word] + ", "
# this is messy cause there's a lagging comma space at the end but
# figure that out later.
return phrase[:len(phrase)-2]
如果我们给它我们的诗和范围内的三个坐标将产生:
print phrases([(0,0), (1,2), (2,2)], poem)
会产生一个短语:
This, lines, lines.
总结:将您的诗存储为行列表,每行由单词组成。坐标系是(线,字)。希望这是你的想法。