在Python中使用步骤阻止切片

时间:2019-11-05 15:02:50

标签: python list slice

我想知道是否有可能在python中对第n个块进行子索引。可以

import UIKit

class ProductCellVC: UICollectionViewCell
{
    @IBOutlet weak var productImage: UIImageView!

    override func awakeFromNib()
    {
        super.awakeFromNib()

        self.layer.borderWidth = 1
        self.layer.cornerRadius = 25
    }
}

给出第二个值

to have one row of products, and  the width of each cell (product) in the

但是如果我想要类似的东西怎么办?

a = [1, 2, 3, 4, 5, 6, 7, 8]
a[::2]

所以基本上每个长度为2的第二个块都可以通过某种方式建立子索引吗?

2 个答案:

答案 0 :(得分:0)

您可以这样解决

import itertools
a = [1, 2, 3, 4, 5, 6, 7, 8]
b = list(itertools.chain(*[a[i:i+2] for i in range(0, len(a), 2)][::2]))
assert b == [1,2,5,6]

答案 1 :(得分:0)

有趣的问题。

您可以执行以下操作,但会丢失数组的顺序

a[::4] + a[1::4]

输出:

[1, 5, 2, 6]

使用numpy,您可以创建具有以下模数的蒙版:

import numpy as np
mod4 = np.arange(len(a)) % 4
np.array(a)[(mod4==0) | (mod4==1)]

输出:

array([1, 2, 5, 6])