Tested copy(), [:], and list():
>>> t1 = timeit.Timer('copy.copy(orig)','import copy;import random;orig = [random.randint(0,255) for r in xrange(100000)];')
>>> t2 = timeit.Timer('orig[:]','import copy;import random;orig = [random.randint(0,255) for r in xrange(100000)];')
>>> t3 = timeit.Timer('list(orig)','import copy;import random;orig = [random.randint(0,255) for r in xrange(100000)];')
>>> print t1.timeit(10000)/10000
0.00036607401371
>>> print t2.timeit(10000)/10000
0.000416543197632
>>> print t3.timeit(10000)/10000
0.000372415995598
Probably not the world's most ideal testing here. I have no idea if/how Python caches, for instance. But slice notation continually comes out the slowest in this crummy example.