def selection_sort_by_second_character(words):
  # FIXME: sorts by whole string
  for i in range(len(words)):
    # Find smallest value from i
    smallest_idx = i
    for j in range(i,len(words)):
      left_word = words[i]
      right_word = words[j]
      left_word_second_letter = left_word[1]
      right_word_second_letter = right_word[1]
      out_of_order = (left_word_second_letter > right_word_second_letter)
      if out_of_order:
        smallest_idx = j
    # Swap i with the smallest value from i
    tmp = words[i]
    words[i] = words[smallest_idx] # this line had a bug on it
    words[smallest_idx] = tmp # so did this one

def main():
  f = open('1000.dicin','r')
  words = []
  for line in f:
    if len(line.strip()) >= 2:
      words.append(line.strip())
  selection_sort_by_second_character(words)
  print words

main()

