I met this in a python script list[:, 1] and I am trying to figure out the role of the comma.
解决方案
Generally speaking:
foo[somestuff]
calls either __getitem__, or __setitem__. (there's also __getslice__ and __setslice__, but those are now deprecated, so let's not talk about that). Now, if somestuff has a comma in it, python will pass a tuple to the underlying function:
foo[1,2] # passes a tuple
If there is a :, python will pass a slice:
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)
Hopefully you get the idea. Now if there is a comma and a colon, python will pass a tuple which contains a slice. in your example:
foo[:, 1] # passes the tuple `(slice(None, None, None), 1)`
What the object (foo) does with the input is entirely up to the object.