如何将周长值乘以此函数的乘数?

时间:2018-03-18 19:29:47

标签: python

这个问题要求你写两个涉及的函数 矩阵/整数网格, 由二维列表表示。

(a)写函数multiply_perimeter,其中 接受一个二维的整数列表 (代表数字和任意大小的网格) 并将所乘的值相乘 给定的网格周长 乘数参数,改变参数列表。 网格的周长定义为 网格的最外面的行和列。

例如,在由...表示的网格中 L = [[1,2,3,4],[5,6,7,8],[9,10,11,12]], 函数callmultiply_perimeter(L,2) 将对下面网格中的粗体值进行操作,通过将周长加倍来改变网格 值右侧的结果。

1 2 3 4                    2 4 6 8
5 6 7 8                    10 6 7 16
9 10 11 12   would become  18 20 22 24

这是我到目前为止所拥有的:

def multiply_perimeter(L: [[int]], multiplier: int) -> None:
    for x in L:
        x[0] = x * multiplier
        x[-1] = x * multiplier

        for y in x:

2 个答案:

答案 0 :(得分:0)

指南:

一种可能的方式

  • 找到L的长度,称之为n。
  • 使用索引为i的for循环
  • 如果i为0或n-1,则通过乘以每个元素来更改L [i]的元素。
  • 假设不仅乘以L [i]的第一个和最后一个元素。

答案 1 :(得分:0)

您可以使用以下代码实现它:

def multiply_perimeter(L: [[int]], multiplier: int) -> None:
    size = len(L)
    if size > 0:
        # multiply only the first and last element in the lists L[1]...L[size-2]
        for _ in range(1, size-1):
            L[_][0] *= multiplier
            L[_][-1] *= multiplier
        # multiply first and last line elements by multiplier
        L[0] = [item*multiplier for item in L[-1]]
        L[-1] = [item*multiplier for item in L[-1]]