我想检查第一行是否等于第一列,第二行是否等于第二列,依此类推。如果矩阵等于其转置。
我尝试使用以下代码解决问题,但该函数未返回任何内容。有人可以帮我弄这个吗
x = [[1, 2, 3],
[2, 3, 4],
[3, 4, 1]]
def rows(matrix):
list = [val for val in matrix]
list1 = [i for i in zip(*matrix)]
if list == list1:
return True
else:
return False
rows(x)
python大神给出的解决方案
zip
函数返回一个元组列表:
>>> x = [[1, 2, 3],
[2, 3, 4],
[3, 4, 1]]
>>> zip(*x)
[(1, 2, 3), (2, 3, 4), (3, 4, 1)]
>>> x == zip(*x)
False
即使列表具有相同的元素,它也不等于元组。即使内部列表/元组包含相同的元素,列表的列表也不等于元组的列表。您可以轻松地完成自己想做的事情,并且与您很接近!
>>> x == [list(i) for i in zip(*x)]
True