Подтвердить что ты не робот

Что значит?

Я анализирую некоторый код Python, и я не знаю, что

pop = population[:]

средства. Это что-то вроде списков массивов в Java или как двумерный массив?

4b9b3361

Ответ 1

Это нарезка, и то, что она делает, зависит от типа population. Если population - это список, эта строка создаст копию списка. Для объекта типа tuple или str он ничего не сделает (строка будет делать то же самое без [:]), а для (скажем) NumPy-массива он создаст новое представление для тех же данных.

Ответ 2

Это также может помочь узнать, что фрагмент списка вообще делает копию части списка. Например. population[2:4] вернет список, содержащий популяцию [2] и популяцию [3] (разрезание справа). Оставляя левый и правый индекс, как в population[:], они по умолчанию равны 0 и длине (совокупность) соответственно, тем самым выбирая весь список. Следовательно, это распространенная идиома, чтобы сделать копию списка.

Ответ 3

хорошо... это действительно зависит от контекста. В конечном итоге он передает slice объект (slice(None,None,None)) одному из следующих способов: __getitem__, __setitem__ или __delitem__. (На самом деле, если объект имеет __getslice__, который будет использоваться вместо __getitem__, но теперь он устарел и не должен" t).

Объекты могут делать то, что они хотят с помощью среза.

В контексте:

x = obj[:]

Это вызовет obj.__getitem__ с переданным объектом среза. Фактически это полностью эквивалентно:

x = obj[slice(None,None,None)]

(хотя первый, вероятно, более эффективен, потому что ему не нужно искать конструктор slice - все это делается в байт-коде).

Для большинства объектов это способ создания неглубокой копии части последовательности.

Далее:

x[:] = obj

Является способом установки элементов (он вызывает __setitem__) на основе obj.

и, я думаю, вы, вероятно, можете догадаться, что:

del x[:]

вызывает; -).

Вы также можете передавать разные фрагменты:

x[1:4]

создает slice(1,4,None)

x[::-1]

строит slice(None,None,-1) и т.д. Дальнейшее чтение: Объяснить нотацию фрагмента Python

Ответ 4

Это срез от начала последовательности до конца, обычно создавая мелкую копию.

(Ну, это больше, чем это, но вам пока не нужно заботиться.)

Ответ 5

Создает копию списка, вместо того, чтобы просто назначить новое имя для уже существующего списка.

Ответ 6

[:]
используется для ограничения или разрезания в массиве, хэш
например:
[1: 5] для отображения значений между 1 включительно и 5 эксклюзивных i.e 1-4 [Начало: конец]

в основном используется в массиве для нарезки, понимает переменную accept accept, которая означает среднее значение или ключ для отображения, а ":" используется для ограничения или разрезания всего массива на пакеты.