Я встретил это в python script list[:, 1]
, и я пытаюсь выяснить роль запятой.
Что означает двоеточие и запятая в списке python?
Ответ 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
) с входом, полностью зависит от объекта.