views:

402

answers:

2

Very simple question, hopefully. So, in Python you can split up strings using indices as follows:

>>> a="abcdefg"
>>> print a[2:4]
cd

but how do you do this if the indices are based on variables? E.g.

>>> j=2
>>> h=4
>>> print a[j,h]
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: string indices must be integers
+5  A: 

It works you just have a typo in there, use a[j:h] instead of a[j,h] :

>>> a="abcdefg"
>>> print a[2:4]
cd
>>> j=2
>>> h=4
>>> print a[j:h]
cd
>>> 
Bakkal
Doh! Thank you!
Robin Welch
+2  A: 

In addition to Bakkal's answer, here is how to manipulate slices programmatically, which is sometimes convenient:

a = 'abcdefg'
j=2;h=4
my_slice = slice(j,h) # you can pass this object around if you wish

a[my_slice] # -> cd
Olivier
Nice! Thanks very much.
Robin Welch