Indexing Strings

In the code below, the only part I'M having trouble with is word[position]. I know this is something really simple but I've always had trouble understanding these kinds of statements. I know that it print a random letter (position) from (word). What I don't know is why or how it does that. That's the part that never seems to get explained to me. How can you just put [] around part of a statement and everything just work right? Thanks.

# Random Access
# Demonstrates string indexing

import random

word = "index"
print "The word is: ", word, "

high = len(word)
low = -len(word)

for i in range(10):
position = random.randrange(low, high)
print "word[", position, "] ", word[position]


Press the enter key to exit.")[/code]


  • I'm not quite sure how to explain this if you already have it written out as 'word' and 'position'. Given a string "word" and an integer "i", word[i] returns the letter in the ith position. Remember that Python is zero-indexed, though, so for the word "index", you have
    i -> 0
    n -> 1
    d -> 2
    e -> 3
    x -> 4
    Note that there is not position 5, even though len(word) == 5.

    Also, putting '-' in an index has a special meaning in Py. That makes your index start at the end of the word instead of at the beginning. So, you get

    x -> -1
    e -> -2
    d -> -3
    n -> -4
    i -> -5

    That's nice for when you need to get to the back of a string/list, but you don't know how long it is. I guess you could also use it to count backwards...
  • Thanks for the help. I really appreciate it.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!