Python 编写一个函数,将2D数组作为输入并返回';方形'';矩形';或';无效';

Python 编写一个函数,将2D数组作为输入并返回';方形'';矩形';或';无效';,python,Python,编写一个函数descripe(matrix),该函数将2D数组作为输入,如果矩阵为正方形,则返回“Square”;如果矩阵为矩形,则返回“矩形”;如果两者都不是,则返回“无效”。 方阵的行数和列数相同。 矩形矩阵可以有不同的行数和列数,但每行的长度相同。 无效矩阵的行长度不一致。 现在所有的方阵也是矩形,所以我知道这应该是一个子集 我基本上可以判断矩阵是正方形还是无效。我的代码对矩形也返回“无效”。我不知道如何定义列以及如何计算某个对象是正方形还是矩形 def describe(matrix):

编写一个函数descripe(matrix),该函数将2D数组作为输入,如果矩阵为正方形,则返回“Square”;如果矩阵为矩形,则返回“矩形”;如果两者都不是,则返回“无效”。 方阵的行数和列数相同。 矩形矩阵可以有不同的行数和列数,但每行的长度相同。 无效矩阵的行长度不一致。 现在所有的方阵也是矩形,所以我知道这应该是一个子集

我基本上可以判断矩阵是正方形还是无效。我的代码对矩形也返回“无效”。我不知道如何定义列以及如何计算某个对象是正方形还是矩形

def describe(matrix):
        if all([len(i)==len(matrix) for i in matrix]):
            return "Square"
        else:
            return "Invalid"

你应该改变你的想法。不应将每行的长度与行数进行比较,而应将除第一行以外的所有行的长度与第一行的长度进行比较。如果全部匹配,则至少有一个矩形无效。如果第一行的长度(这里是其他行的长度)等于行数,那么就有一个正方形

只需注意角落案例(空数组和单行)


python代码留作练习:-)

您应该改变想法。不应将每行的长度与行数进行比较,而应将除第一行以外的所有行的长度与第一行的长度进行比较。如果全部匹配,则至少有一个矩形无效。如果第一行的长度(这里是其他行的长度)等于行数,那么就有一个正方形

只需注意角落案例(空数组和单行)

python代码留作练习:-)

您可以尝试此代码

def describe(tmp):
    lengths = [len(item) for item in tmp]

    if len(set(lengths)) > 1: 
        return 'Invalid'
    else:
        if len(lengths) == lengths[0]:
            return 'Squrare'
        else:
            return 'Rectangular'  
你可以试试这个代码

def describe(tmp):
    lengths = [len(item) for item in tmp]

    if len(set(lengths)) > 1: 
        return 'Invalid'
    else:
        if len(lengths) == lengths[0]:
            return 'Squrare'
        else:
            return 'Rectangular'  

以下代码可能会有所帮助:

def描述(矩阵):
如果全部([len(i)=len(矩阵)表示矩阵中的i]):
返回“正方形”
艾利夫·伦(矩阵)=len(矩阵[0])和all([len(i)==len(矩阵[0]),表示矩阵中的i]):
返回“矩形”
其他:
返回“无效”

以下代码可能会有所帮助:

def描述(矩阵):
如果全部([len(i)=len(矩阵)表示矩阵中的i]):
返回“正方形”
艾利夫·伦(矩阵)=len(矩阵[0])和all([len(i)==len(矩阵[0]),表示矩阵中的i]):
返回“矩形”
其他:
返回“无效”

您可以首先检查所有行的长度是否相同,然后确定它是正方形还是矩形

def describe(matrix):
    len_row = len(matrix[0])
    if all([len(i) == len_row for i in matrix]):
       if all([len(i)==len(matrix) for i in matrix]):
          return "Square"
       else:
          return "Rectangle"
    else:
        return "Invalid"

您可以首先检查所有行的长度是否相同,然后确定它是正方形还是矩形

def describe(matrix):
    len_row = len(matrix[0])
    if all([len(i) == len_row for i in matrix]):
       if all([len(i)==len(matrix) for i in matrix]):
          return "Square"
       else:
          return "Rectangle"
    else:
        return "Invalid"

首先确定矩阵是否为矩形,然后检查它是否为正方形如果您知道
try
except
构造,您可以事先检查矩阵是否为二维:
try:matrix[0][0]
except TypeError:return“Invalid”
首先确定矩阵是否为矩形,然后检查它是否为正方形如果您知道
try
except
构造,您可以事先检查矩阵是否为2D:
try:matrix[0][0]
except TypeError:返回“Invalid”