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

Что означает двоеточие и запятая в списке python?

Я встретил это в python script list[:, 1], и я пытаюсь выяснить роль запятой.

4b9b3361

Ответ 1

Вообще говоря:

foo[somestuff]

вызывает либо __getitem__, либо __setitem__. (там также __getslice__ и __setslice__, но теперь они устарели, поэтому не будем говорить об этом). Теперь, если somestuff имеет в себе запятую, python передает tuple в базовую функцию:

foo[1,2]  # passes a tuple

Если существует :, python передает срез:

foo[:]  # passes `slice(None, None, None)`
foo[1:2]  # passes `slice(1, 2, None)`
foo[1:2:3]  # passes `slice(1, 2, 3)
foo[1::3]  # passes `slice(1, None, 3)

Надеюсь, ты получишь эту идею. Теперь, если есть запятая и двоеточие, python передаст кортеж, содержащий срез. в вашем примере:

foo[:, 1]  # passes the tuple `(slice(None, None, None), 1)`

То, что делает объект (foo) с входом, полностью зависит от объекта.