Tuple index

Steven Bethard steven.bethard at gmail.com
Mon Feb 21 17:15:43 EST 2005


Steve M wrote:
> I'm actually doing this as part of an exercise from a book. What the program
> is supposed to do is be a word guessing game. The program automaticly
> randomly selects a word from a tuple. You then have the oportunity to ask
> for a hint. I created another tuple of hints, where the order of the hints
> correspond to the word order. I was thinking if I could get the index
> position of the randomly selected word, I pass that to the hints tuple to
> display the correct hint from the hints tuple. I'm trying to do it this way
> as the book I'm using has not gotten to lists yet.

I'm guessing it also hasn't gotten to dicts yet either?  Perhaps a 
somewhat more natural way of doing this would be something like:

py> hints = dict(word1="here's hint 1!",
...              word2="here's hint 2!",
...              word3="here's hint 3!")
py> words = list(hints)
py> import random
py> selected_word = random.choice(words)
py> selected_word
'word3'
py> print hints[selected_word]
here's hint 3!

That said, if you want to find the index of a word in a tuple without 
using list methods, here are a couple of possibilities, hopefully one of 
which matches the constructs you've seen so far:

py> t = ("fred", "barney", "foo")

py> for i, word in enumerate(t):
...     if word == "barney":
...         break
...
py> i
1

py> for i in range(len(t)):
...     if t[i] == "barney":
...         break
...
py> i
1

py> i = 0
py> for word in t:
...     if word == "barney":
...         break
...     i += 1
...
py> i
1

HTH,

STeVe



More information about the Python-list mailing list