0
点赞
收藏
分享

微信扫一扫

二维数组取值算法

北邮郭大宝 2022-03-30 阅读 55
python

# 操作数组

mylist = [

    ['00', '01', '02', '03'],

    ['10', '11', '12', '13'],

    ['20', '21', '22', '23'],

    ['30', '31', '32', '33']

]

 

 

# 取值坐标

class Vector:

    def move(self, x, y):

        pass

 

 

# x坐标增加

class VectorUpX(Vector):

    def __init__(self, x, y):

        self.x = x

        self.y = y

 

    def move(self):

        self.y += 1

        return self.x, self.y

 

 

# x坐标减少

class VectorDownX(Vector):

    def __init__(self, x, y):

        self.x = x

        self.y = y

 

    def move(self):

        self.y -= 1

        return self.x, self.y

 

 

# 二维数组取值

class DoubleListHelper:

    def __init__(self, target, count, vect_dir):

        '''

 

        :param target: 传入列表

        :param count: 取值范围

        :param vect_dir: 导入函数

        '''

        self.target = target

        self.count = count

        self.list_result = self.__get_elements(vect_dir)

 

    def __get_elements(self, vect_dir):

        list_result = []

        for i in range(self.count):

            a, b = vect_dir.move()

            list_result.append(self.target[a][b])

        return list_result

 

    def __str__(self):

        return str(self.list_result)

 

 

d01 = DoubleListHelper(mylist, 2, VectorUpX(0, 0))

d01 = DoubleListHelper(mylist,

2, VectorDownX(0, 3))

print(d01)

 

'''

输出结果:

['02', '01']

'''

举报

相关推荐

0 条评论