<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def GetBestMatch(target, matchList):
 """ Finds the elements of matchList which best match the target string. Note that this searches substrings so "abc" will have a 100% match in both "this is the abc", "abcde" and "abc". The return from this function is a list of potention matches which shared the same highest match score. If any exact match is found (1.0 score and equal size string) this will be given alone. Parameters target : string Target string to match. matchList : list List of strings to match target against. Returns list A list of potention matches which share the same highest match score. If any exact match is found (1.0 score and equal size string) this will be given alone. """

  bestMatchList = []

  if len(matchList) > 0:
    ratioMatch = []
    for item in matchList:
      ratioMatch.append(GetBestStringMatchValue(target, item))

    maxRatio = max(ratioMatch)
    if maxRatio > 0.8:
      matchIndexList = [i for i, j in enumerate(ratioMatch) if j == maxRatio]

      for index in matchIndexList:
        if maxRatio == 1 and len(matchList[index]) == len(target):
          return [matchList[index], ]
        else:
          bestMatchList.append(matchList[index])

  return bestMatchList