What does a colon and comma stand in a python list?

放肆的年华 提交于 2019-11-27 19:37:49

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.

qartal

Lets assume list is a 2D (numpy) array as follows:

[[ 1, 2, 3],

[ 4, 5, 6],

[ 7, 8, 9]]

list[1,1] -->  5 # it says select the element in position [1,1] (note that indexes start from zero)


list[:,1] --> [2,5,8] 

list[1][1]  --> 5

list[:][1] --> [4 5 6]

See this for further examples.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!