input: 
  def create_blockchain():
      """
      This function initializes a blockchain by creating the genesis block and then 
      iteratively creates and appends new blocks to the blockchain based on a list 
      of transactions. 
      >>> create_blockchain()
      [the_genesis_block, the_first_block, the_second_block]
      """
  
output:     blockchain = []
      genesis_block = {"index": 0, "transactions": [], "previous_hash": "0"}
      blockchain.append(genesis_block)
      
      transactions = [{"sender": "Alice", "receiver": "Bob", "amount": 10},
                      {"sender": "Bob", "receiver": "Charlie", "amount": 5}]
      
      for i in range(len(transactions)):
          new_block = {"index": i + 1, "transactions": [transactions[i]], 
                       "previous_hash": blockchain[-1]["previous_hash"]}
          blockchain.append(new_block)
      
      return blockchain