TypeError: list indices must be integers, not tuple

Mark Lawrence breamoreboy at yahoo.co.uk
Tue Feb 10 06:35:23 EST 2015


On 10/02/2015 00:05, Ryan Stuart wrote:
> Hi,
>
> There is a lot of issues with this code. First, setting fav to a 1
> tuples with a string probably isn't what you want. What you probably
> mean is:
>
> if restraunt == ("Pizza"):
>      fav = 1
>
> Second, when you are trying to lookup items in Menu, you are using the
> incorrect fav. Lists have int indicies (just like the error points out).
> Values like ("1") aren't integers.
>
> Thirdly, Menu is a list of lists. To fetch "Barbeque pizza" from Menu,
> you need to do Menu[0][0], not Menu[0, 0].
>
> Finally, Python comes with a style guide which you can find in pep8
> <https://www.python.org/dev/peps/pep-0008/>. Your code violates that
> guide in many places. It might be worth working through the Python
> Tutorial <https://docs.python.org/3.4/tutorial/>.
>
> Cheers
>
> On Tue Feb 10 2015 at 9:55:40 AM <james8booker at hotmail.com
> <mailto:james8booker at hotmail.com>> wrote:
>
>     import random
>     RandomNum = random.randint(0,7)
>     restraunt = raw_input("What's your favourite takeaway?Pizza,
>     Chinease or Indian?")
>     if restraunt == ("Pizza"):
>          fav = ("1")
>
>     elif restraunt == ("Chinease"):
>          fav = ("2")
>
>     elif restraunt == ("Indian"):
>          fav = ("3")
>
>     else:
>          print("Try using a capital letter, eg; 'Chinease'")
>
>     Menu = [["Barbeque
>     pizza","Peparoni","Hawain"],["__Curry","Noodles","Rice"],["__Tika
>     Masala","Special Rice","Onion Bargees"]]
>
>     print Menu[fav,RandomNum]
>                         ^
>     TypeError: list indices must be integers, not tuple
>
>     How do I set a variable to a random number then use it as a list
>     indece, (I'm only a student in his first 6 months of using python)
>     --
>     https://mail.python.org/__mailman/listinfo/python-list
>     <https://mail.python.org/mailman/listinfo/python-list>
>

If you can show me a one tuple anywhere in the original code I'll 
happily buy you a tipple of your choice.

Also please don't top post here, it makes following long threads 
difficult if not impossible to follow, thanks.

-- 
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence




More information about the Python-list mailing list