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

2024-04-20 08:37:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

(a)写入函数U周长,其中 接受二维整数列表 (表示任意大小的数字网格) 并将打开的值相乘 给定网格的周长 乘数参数,对参数列表进行变异。 栅格的周长定义为 网格最外层的行和列。你知道吗

例如,在由 L=[[1,2,3,4],[5,6,7,8],[9,10,11,12]], 函数callu周长(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:

Tags: 函数in网格列表for参数矩阵数字
2条回答

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

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]]

指南:

一种可能的方法

  • 找出L的长度,称之为n
  • 使用带有索引i的for循环
  • 如果i为0或n-1,则通过将每个元素相乘来更改L[i]的元素。你知道吗
  • 假设不只是将L[i]的第一个和最后一个元素相乘。你知道吗

相关问题 更多 >