Я встретил это в 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) с входом, полностью зависит от объекта.