title: TypeError: list indicies must be integers or slices, not str
body: <p>I'm sort of new to coding, as I didn't get taught properly in school, so I'm trying to learn outside of school. And this is my code of a Menu.</p>
  <pre><code>Sauces = (&quot;\nSauces: \n Cranberry Sauce \n Barbecue Sauce \n Brown Sauce \n Horseradish \n Hot Sauce \n Mayonnaise \n Mustard \n Ketchup \n No Sauce&quot;)
  Starters = (&quot;\nStarters: \n Calamary \n Chilli Prawn Bruschetta \n Chicken Satay \n 5 Chicken Drumsticks \n Smoked Salmon Cocktial \n Backed Mushrooms With Festive Cheese \n Soup Served In Bread \n Arancini \n Garlic Bread&quot;)
  
  while True:
      try:
          NumberPeople = int(input(&quot;How many people are here today? &quot;))
      except ValueError:
          print(&quot;Sorry I didn't understand that. Please try again.&quot;)
          continue
  
      if NumberPeople &lt; 0:
          print(&quot;Sorry, you cannot have negative amount of people.&quot;)
          continue
  
      if NumberPeople &lt; 1:
          print(&quot;Sorry, you cannot have nobody coming.&quot;)
          continue
      
      else:
          break
  
  if NumberPeople &lt; 3:
      print(&quot;Thank you. There is a table free for you at Table 2&quot;)
  elif NumberPeople &lt; 5:
      print(&quot;Thank you. There is a table free for you at Table 1&quot;)
  elif NumberPeople &lt; 7:
      print(&quot;Thank you. There is a table free for you at Table 3&quot;)
  elif NumberPeople &lt; 21:
      print(&quot;Thank you. There is a table free for you at Table 8&quot;)
  else:
      print(&quot;Sorry we don't have enough space for that many people&quot;)
  
  
  
  
  print(Starters)
  MyOrder = []
  for i in range(NumberPeople):
      while True:
          try:
              StarterMenu = input (&quot;\nPerson %i, what would you like? &quot; % (i + 1))
          except ValueError:
              print(&quot;Sorry I didn't understand. Please try again.&quot;)
              continue
          if StarterMenu == &quot;Calamary&quot;:
              print(Sauces)
              SauceChoice = input(&quot;\nWhat sauce do you want? &quot;)
              if SauceChoice == &quot;Cranberry Sauce&quot;:
                  MyOrder.append(&quot;Calamary with Cranberry Sauce&quot;)
                  break
              elif SauceChoice == &quot;Barbecue Sauce&quot;:
                  MyOrder.append(&quot;Calamary with Barbecue Sauce&quot;)
                  break
              elif SauceChoice == &quot;Brown Sauce&quot;:
                  MyOrder.append(&quot;Calamary with Brown Sauce&quot;)
                  break
              elif SauceChoice == &quot;Horseradish&quot;:
                  MyOrder.append(&quot;Calamary with Horseradish&quot;)
                  break
              elif SauceChoice == &quot;Hot Sauce&quot;:
                  MyOrder.append(&quot;Calamary with Hot Sauce&quot;)
                  break
              elif SauceChoice == &quot;Mayonnaise&quot;:
                  MyOrder.append(&quot;Calamary with Mayonnaise&quot;)
                  break
              elif SauceChoice == &quot;Mustard&quot;:
                  MyOrder.append(&quot;Calamary with Mustard&quot;)
                  break
              elif SauceChoice == &quot;Ketchup&quot;:
                  MyOrder.append(&quot;Calamary with Ketchup&quot;)
                  break
              elif SauceChoice == &quot;No Sauce&quot;:
                  MyOrder.append(&quot;Calamary with No Sauce&quot;)
                  break
              else:
                  print(&quot;Sorry I didn't understand. Please try again&quot;)
                  continue
          else:
              print(&quot;Okay No Starter&quot;)
  </code></pre>
  <p>All of the stuff above seems to run smooth, but it's the code below that runs into the problem that I seem to not understand. I looked at this website and I saw I should use this way, but when I do it, I get <em><strong>TypeError: list indicies must be integers or slices, not str.</strong></em></p>
  <pre><code>    print (&quot;Order is being processed, next order:\n&quot;)
      MyOrder.append({ 'SauceChoice': SauceChoice })
  
  print('The orders has been processed with these data:')
  for i in range(NumberPeople):
      order = MyOrder[i]
      print (' - Person', i + 1, 'wants ', StarterMenu, 'with %i ' % MyOrder['SauceChoice'])
  </code></pre>