2016-08-31 13 views
-1
sortedWinnerIndices = winnerIndices[-numActive:][::-1] 

Может кто-нибудь сказать мне, что здесь происходит?Python Special Colon Запрос

WinnerIndices is 2048 ints long, Numpy array. Я где-то читал, что [::-1] меняет результат, но я до сих пор не могу понять, как эта функция выбирает подмножество победителей?

+1

Возможного дубликата [Поясните Пайтон ломтик нотация] (Http: // StackOverflow. com/questions/509211/explain-pythons-slice-notation) – DeepSpace

+1

Магия находится в '[-numActive:]', а не в '[:: - 1]'. См. Принятый ответ в обмане. – DeepSpace

ответ

1

Разбить его на шаги. Это эквивалентно:

subset = winnerIndices[-numActive:] 
sortedWinnerIndices = subset[::-1] 

Первый оператор выбирает последние numActive элементов в массиве. Вторая линия меняет ее. Поэтому, когда вы их объединяете, вы получаете последние элементы numActive в обратном порядке от исходного массива.

+0

Подмножество - это фрагмент от -numActive до конца winnerIndices –

+0

Разве это не просто другой способ сказать то, что я написал? – Barmar

+0

Я неправильно истолковал. Да, я думаю, что это –

1
winnerIndices[-numActive:] 

Над берет кусочка от -numActive индекса до конца исходного списка

x[::-1] 

Это меняет е