list( myBigList[i] for i in [87, 342, 217, 998, 500] )
나는 대답을 파이썬 2.5.2와 비교했습니다.
19.7 usec : [ myBigList[i] for i in [87, 342, 217, 998, 500] ]
20.6 usec : map(myBigList.__getitem__, (87, 342, 217, 998, 500))
22.7 usec : itemgetter(87, 342, 217, 998, 500)(myBigList)
24.6 usec : list( myBigList[i] for i in [87, 342, 217, 998, 500] )
Python 3에서는 1st가 4th와 동일하게 변경되었습니다.
또 다른 옵션은 numpy.array
목록 또는 a를 통해 인덱싱을 허용 하는로 시작하는 것입니다 numpy.array
.
>>> import numpy
>>> myBigList = numpy.array(range(1000))
>>> myBigList[(87, 342, 217, 998, 500)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: invalid index
>>> myBigList[[87, 342, 217, 998, 500]]
array([ 87, 342, 217, 998, 500])
>>> myBigList[numpy.array([87, 342, 217, 998, 500])]
array([ 87, 342, 217, 998, 500])
는 tuple
사람들은 조각이 같은 방식으로 작동하지 않습니다.