input: Write a function to find the first non-repeating character in a given list. The function should return the first element that appears only once in the list, or None if all elements are repeated.
  
  def first_non_repeating_char(lst):
      dct = {}
      
      for l in lst:
          if l in dct:
              dct[l] += 1
          else:
              dct[l] = 1
              
      for l in lst:
          if dct[l] == 1:
              return l
              
      return None
  
  assert first_non_repeating_char([1, 2, 3, 4, 4, 3, 2, 1]) == 1
  assert first_non_repeating_char([5, 5, 4, 4, 3, 3, 2, 2]) == None
  assert first_non_repeating_char([1, 2, 3, 4, 5, 1, 2, 3]) == 4
  assert first_non_repeating_char([1, 1, 2, 2, 3, 3, 4, 4, 5]) == 5
  assert first_non_repeating_char([]) == None
output: def first_non_repeating_char(lst):
      dct = {}
      
      for l in lst:
          if l in dct:
              dct[l] += 1
          else:
              dct[l] = 1
              
      for l in lst:
          if dct[l] == 1:
              return l
              
      return None