Python:在另一个替换内容中插入一个2D列表

时间:2014-03-16 22:56:44

标签: python list matrix

我写了一个小的(破坏性的)函数,它带有两个2D列表(或者#34;网格"正如我所说的那样)和一组坐标。它将第一个网格插入第二个网格内,假设与第一个网格一样大或大(未执行检查)。坐标表示第一个网格的左上角。

def insert_grid(subj, obj, cords=(0, 0)):
   u, v = cords
   h = len(subj)
   w = len(subj[0])
   for y in range(0, h):
      for x in range(0, w):
         obj[u + y][v + x] = subj[y][x]

我想知道是否有更清洁,更pythonic的方法来达到同样的效果。标准的lib方法总是优先于其他方法。

谢谢。阿利萨。

1 个答案:

答案 0 :(得分:1)

您可以略微简化:

def insert_grid(subj, obj, cords=(0, 0)):
    u, v = cords
    w = len(subj[0])        
    for index, row in enumerate(subj, u):
        obj[index][v:v+w] = row

这将一次性替换行中的所有列。