Question: I've got the entire contents of a text file (at least a few KB) in string `myStr`.

Will the following code create a copy of the string (less the first character) in memory?

`myStr = myStr[1:]`

I'm hoping it just refers to a different location in the same internal buffer. If not, is there a more efficient way to do this?

Thanks!

Note: I'm using Python 2.5.

Answer: 
As with most garbage collected languages, strings are created as often as needed, which is very often. The reason for this is because tracking substrings as described would make garbage collection more difficult.

What is the actual algorithm you are trying to implement. It might be possible to give you advice for ways to get better results if we knew a bit more about it.

As for an alternative, what is it you really need to do? Could you use a different way of looking at the issue, such as just keeping an integer index into the string? Could you use a `array.array('u')`?
One (albeit slightly hacky) solution would be something like this:

```
f = open("test.c")
f.read(1)
myStr = f.read()
print myStr

```

It will skip the first character, and then read the data into your string variable.