Best way to access lists and nest them with if statements
Here are just a few comments to help improve your code:

When you have a collection, think about how you are going to access the collection. Most of the time, you are going to treat it as a group of items (example: &quot;weapons&quot;) and so you should use a plural name. Rarely, you will treat a collection as a single item (example: &quot;database&quot;), and so you should use a singular name.

Always use functions. Yes, python supports having statements directly &quot;up against the wall.&quot; But it is much, much easier to write test cases, to debug your code, and to change your mind about what order to do things if you have a single name (function) for a group of statements. Moving things around as blobs of text is miserable and prone to errors.

When you find yourself doing something twice, write a function! In your case, asking the user for some input is a good place to put a function:
 show_message(&quot;There's a wizard conjuring a spell.&quot;)
 choice = get_choice(&quot;What do you do?&quot;,
       &quot;Talk to the wizard&quot;,
       &quot;Attack the wizard&quot;,
       &quot;Run away&quot;)


As far as your collection of weapons is concerned, think about what kind of game you are writing. If you are writing a &quot;dungeon&quot; style game, where there is going to be a lot of fighting monsters, then having real weapon-objects with stats will be important. In that case, you'll probably want either a set or a list, but you'll want a separate variable to track which of the possibly many weapons is currently being wielded.
On the other hand, if you are writing more of a &quot;text adventure&quot; game, where just having &quot;the sword&quot; is enough to beat a monster, then you might not want a collection at all. Instead, you might want one or more boolean variables, or perhaps a dictionary full of booleans.


      if user_has['the sword']:
          show_message(&quot;The troll runs away!&quot;)
      else:
          show_message(&quot;The troll eats you. You have died.&quot;)


To specifically answer your question about how to access members of lists: note that you are using the list.append() function. This takes an object and adds it to the end of the list. So if you have 11 items in the list, and you .append another item, it will be the 12th item (index 11, because list indexes are 0-based).
You can access that item in two ways. The &quot;hard way&quot; is to compute the length of the list and subtract one:
 item = &quot;sword&quot;
 weapons.append(item)
 sword_index = len(weapons) - 1
 print(&quot;You have a&quot;, weapons[sword_index])

An easier way is to reply on the fact that python supports negative indexes as being from the end of the list. That is, list[-1] is the last item, list[-2] is the next-to-last item, etc. This works with indexes and with slices, so you can also say list[1:-3] or list[-5:] for example. See note 3 in the sequence docs for details.