'if user input is an element of a list

I think there must be a simple solution to this, but I can't find it. If user input is equal to an element of a list, then the if statement should evaluate to true:

animalslist = ['bear', 'giraffe', 'wolf', 'lion', 'rabbit', 'monkey', 'scorpion']             
animalnumber = int(input("\nEnter a number between 0 and 6 inclusive.\n"))

print "You have summoned a %s..." % animalslist[animalnumber]

if animalslist[animalnumber] == "scorpion" or "wolf" or "lion" or "bear":
    #or perhaps using the integer - if animalslist[animalnumber] == 0 or 2 or 3 or 5:
    print "That is a vicious predator. You = dinner. The End.\n\n"

else:
    ...


Solution 1:[1]

You can use another list. Example:

animalslist = ['bear', 'giraffe', 'wolf', 'lion', 'rabbit', 'monkey', 'scorpion']   
predatorlist = ["scorpion", "wolf", "lion", "bear"]
if animalslist[animalnumber] in predatorlist:
    print "That is a vicious predator. You = dinner. The End.\n\n"

Solution 2:[2]

You could do something like this:

animalslist = ['bear', 'giraffe', 'wolf', 'lion', 'rabbit', 'monkey', 'scorpion']             
animalnumber = int(input("\nEnter a number between 0 and 6 inclusive.\n"))
predators = {"scorpion", "wolf", "lion", "bear"}

print "You have summoned a %s..." % animalslist[animalnumber]

if animalslist[animalnumber] in predators:
    print "That is a vicious predator. You = dinner. The End.\n\n"
else:
    ...

Solution 3:[3]

An alternative is to restructure your data, knowing the usage you have for it. This is not dissimilar to @JhanzaibHumayun's answer in terms of semantics, but is another way to think about it:

animals = {
  'bear': True,
  'giraffe': False,
  'wolf': True,
  'lion': True,
  'rabbit': False,
  'monkey': False, 
  'scorpion': True,
}

choice = int(input(f"\nEnter a number between 0 and {len(animals)} inclusive.\n"))
summoned = [*animals][choice]
print f"You have summoned a {summoned}..."
if animals.get(summoned):
    print f"Summoned is a vicious predator. You = dinner. The End. \n\n"

This relates the data about animals and whether they're a predator or not (true/false) in a single data structure. This is no more or less computationally expensive than storing it in two lists, and probably saves a few licks of memory. You could take it a step further by storing additional information beyond their predator nature, though at that point you might want to think about a dataclass.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Vincent
Solution 2 Nathaniel Ford
Solution 3 Vincent