python列表每隔一个元素取一个值

取一个List的部分元素是非常常见的操作,Python提供了切片(Slice)操作符

L[0:3]表示,从索引0开始取值,直到索引3为止,单不包括索引3。即索引0, 1, 2, 正好是3个元素。

如果第一个索引是0, 还可以省略:

也可以从索引1开始,取出2个元素。如L[1:3],则取的是索引为1,2这个两个位置的值。

只用一个:,表示从头到尾,因此,L[:]实际上复制出了一个新list。

切片操作还可以制定第三个参数:L[::2]

第三个操作表示每N个元素取一个,上面的L[::2]表示每2个元素取一个值,也就是隔一个取一个。

x0 = x[:, 0::2, 0::2, :] 表示在维度1和维度2,从索引0开始,每隔一个元素取一个
x1 = x[:, 1::2, 1::2, :] 表示在维度1和维度2,从索引1开始,每隔一个元素取一个。
x2 = x[:, 0::2, 1::2, :] 表示在维度1从索引0开始,每隔一个元素取一个;维度2从索引1开始,每隔一个元素取一个。
x3 = x[:, 1::2, 1::2, :] 表示在维度1和维度2从索引1开始,每隔一个元素取一个。
swin Transformer的pathc merging便是这种操作。
posted @ 2022-07-16 20:09  重大的小鸿  阅读(7164)  评论(0编辑  收藏  举报