【发布时间】:2021-04-07 17:40:33
【问题描述】:
我正在编写一个分析文本文件中单词的程序。我已经能够解析文本文件中的所有单词,并在经过艰苦的代码后将它们附加到列表中。我现在在这段代码中遇到了一个问题。我现在应该找到不超过索引中最大距离的单词对(对于每个单词)。 这是我能够获得的输入和字符串列表:
dist_max = int(input('Enter the maximum distance between words ==> '))
list_for_pairs = ['station', 'apple', 'chivalry', 'mansion', 'bear', \
'website', 'vest', 'amazing', 'mansion', 'apple', 'card', \
'station', 'card', 'book', 'same', 'tree', 'honor', \
'leaf', 'trace', 'tractor', 'bucket', 'bread', 'pears', 'book', \
'tractor', 'mouse', 'mansion', 'scratch', 'matter', 'trace']
在这种情况下,最大距离应为 2,例如,对于列表中的单词 'amazing','amazing' 应该配对的对将是 'website'、'vest'、'mansion '和'苹果'。这是因为最大距离为 2,并且列表中的所有单词都在该范围内。 这也是一个示例输出。
这些对必须按字母顺序排列,只有第一个和最后 5 个出现,但应该说明总共有多少个。 最后是我的代码:
pair_list = []
for i in range(len(list_for_pairs)+1):
range_pos = int(range(0, dist_max)) # This is the range for the maximum distance
# between words in the positive (+) direction
range_neg = int(range(0, dist_max, -1))# This is the range for the maximum distance
# between words in the negative (-) direction
pair_list.append('({} {})'.format(list_for_pairs[i], list_for_pairs[range_pos]))
pair_list.append('({} {})'.format(list_for_pairs[i], list_for_pairs[range_neg]))
不多,但基本上,我想制作一个列表来放入所有对,这将使长度部分更容易,并且如果最大距离超出,我需要确保不添加任何内容列表范围。任何提示都表示赞赏,在此先感谢您!
【问题讨论】:
-
这里还有一个你没有分享的细节,不是吗?每对中的单词必须按字母顺序排列。否则,
whistle vest将是最后一个条目。 -
等一下,在我的代码上方。对不起,如果它到处都是。
-
你是对的。我读错了。我很抱歉。
-
您应该为帮助您的人投票,尤其是当您选择的答案可以解决您的问题时。
-
我很抱歉,会的。
标签: python python-3.x string list range