def f356(list1):
lenth=len(list1)
width=len(list1)
if lenth==width==0:
return True
for i in range(width-1):
for j in range(lenth-1,0,-1):
if list1==list1:
continue
else:
return False
for j inrange(lenth-1):
for i in range(width-1,0,-1):
if list1==list1:
continue
else:
return False
return True
#
尝试一行代码def f356(x):
return sum([:-1]!=x for i in range(len(x)-1)])==0 if len(x)>1 else True if len(x)==1 and len(x)!=0 else False
本帖最后由 ouyunfu 于 2020-3-22 23:46 编辑
def f356(M:list)->bool:
if len(M)>1:
for i in range(len(M)-1):
if M[:-1]!=M:
return False
return True
elif len(M)==1 and len(M)!=0:
return True
else:
return '请输入非空矩阵'
l= [
,
,
,
]
k=[
,
]
def fun356(l):
n = len(l)
m = len(l)
active = 1
for i in range(n-1):
for j in range(m-1):
if (l != l):
active = 0
break
if active == 0:
break
if active:
print("True")
else:
print("False")
return active
print(l)
fun356(l)
print(k)
fun356(k)
dch_python 发表于 2020-3-22 09:36
弱弱的问一下如果要输入矩阵格式的是不是应该先导入Pandas(本人萌新)。。。看到前面回复的鱼油都直接用matr ...
不用 pandas
def f(list1):
m = len(list1)
n = len(list1)
list2 = []
for a in range(m):
list2.append()
list2 = list1
for d in range(1,m):
for e in range(0,n):
if e == 0:
list2 = list1
else:
list2 = list2
if list2 == list1:
return True
else:
return False
永恒的蓝色梦想 发表于 2020-3-21 20:18
108 ms
塔利班 发表于 2020-3-21 20:42
164 ms
TJBEST 发表于 2020-3-21 20:43
输入 [, , ] 出错
flamezyy 发表于 2020-3-21 21:24
不确定[]和[,]这种怎么算,就当是False来处理了
108 ms
解题思路:
org_list1 = [,,]
org_list2 = [,]
from numpy import * #调用numpy模块,将数据转换成矩阵进行运算
def q356(org_list):
copy_list = org_list[:]
org_mat = mat(copy_list)
demo = (org_mat.shape)
#当矩阵行列中有一个为1时候,判定为TRUE
if min(demo) == 1:
return True
count = max(demo) - min(demo)
if demo > min(demo):
#行数大于列数,进行行切片操作
num = demo
i = 0
while i < count + 1:
mat1 = org_mat #行切片操作
mat2 = fliplr(mat1) #镜像矩阵
mat5_1 = hstack((mat1,mat2))
mat3 = mat1.T #转置矩阵
mat4 = fliplr(mat3)
mat5_2 = hstack((mat4,mat3))
mat5 = vstack((mat5_2,mat5_1))#矩阵合并,列合并:vstack,行合并:hstack
if (mat5 == mat5.T).all():
i += 1
continue
else:
return False
return True
else:
#列数大于行数,进行列切片操作
num = demo
i = 0
while i < count + 1:
mat1 = org_mat[:,i:num+i] #列切片操作
mat2 = fliplr(mat1) #镜像矩阵
mat5_1 = hstack((mat1,mat2))
mat3 = mat1.T #转置矩阵
mat4 = fliplr(mat3)
mat5_2 = hstack((mat4,mat3))
mat5 = vstack((mat5_2,mat5_1))#矩阵合并,列合并:vstack,行合并:hstack
if (mat5 == mat5.T).all():
i += 1
continue
else:
return False
return True
if __name__ == '__main__':
print(q356(org_list1))
print(q356(org_list2))
输出结果:True
False
zltzlt 发表于 2020-3-22 17:45
输入 [, , ] 出错
已更改
def fun356(arr):
M = len(arr)
N = len(arr)
if M < N:
for i in range(0,N-M+1):
head = arr
for x in range(1,M):
if head != arr:
return False
for i in range(N-M+1,N):
head = arr
for x in range(1,N-i):
if head != arr:
return False
for j in range(1,M):
head = arr
for y in range(1,M-j):
if head != arr:
return False
else:
for j in range(0,M-N+1):
head = arr
for y in range(1,N):
if head != arr:
return False
for j in range(M-N+1,M):
head = arr
for y in range(1,M-j):
if head != arr:
return False
for i in range(1,N):
head = arr
for x in range(1,N-i):
if head != arr:
return False
return True
wcshds 发表于 2020-3-21 21:34
104 ms
TJBEST 发表于 2020-3-21 22:26
我临时想到的一个方法,不过和第一个方法我不太清楚 谁更快。就是说不太清楚python的序列相等运算内部如何 ...
136 ms
fan1993423 发表于 2020-3-21 22:37
这种呢 []是True还是False
True 和 False 都没关系
fan1993423 发表于 2020-3-21 22:39
解答错误
输入:[, , ]
输出:False
预期结果:True
suchocolate 发表于 2020-3-22 10:04
解题思路:
1.实际要循环的只有绿色区
第 4 行的 a 是 ls 吧
旅途Z 发表于 2020-3-22 10:40
388 ms
永恒的蓝色梦想 发表于 2020-3-22 12:19
楼主没有加专辑!@zltzlt
加了
whosyourdaddy 发表于 2020-3-22 10:51
def func356(matrix):
m = len(matrix)
n = len(matrix)
104 ms