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