I have some list of strings, for example:
["foo bar SOME baz TEXT bob",
"SOME foo bar baz bob TEXT",
"SOME foo TEXT",
"
See your friendly neighborhood sorting tutorial. You'll need a sort with a key. Here's a trivial function to give you the idea; it finds the distance between the two words, returning that as the difference metric.
sentence = ["foo bar SOME baz TEXT bob",
"SOME foo bar baz bob TEXT",
"SOME foo TEXT",
"foo bar SOME TEXT baz",
"SOME TEXT"]
def match_score(sentence):
some_pos = sentence.find("SOME")
text_pos = sentence.find("TEXT")
return abs(text_pos - some_pos)
sentence.sort(key = lambda x: match_score(x))
for item in sentence:
print(item)
Output:
foo bar SOME TEXT baz
SOME TEXT
foo bar SOME baz TEXT bob
SOME foo TEXT
SOME foo bar baz bob TEXT