l0stparadise 发表于 2020-3-22 15:37:10

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
#

ouyunfu 发表于 2020-3-22 16:14:11

尝试一行代码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 16:26:45

本帖最后由 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 '请输入非空矩阵'

Herry2020 发表于 2020-3-22 16:58:00

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)

zltzlt 发表于 2020-3-22 17:37:30

dch_python 发表于 2020-3-22 09:36
弱弱的问一下如果要输入矩阵格式的是不是应该先导入Pandas(本人萌新)。。。看到前面回复的鱼油都直接用matr ...

不用 pandas

风魔孤行者 发表于 2020-3-22 17:39:33

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

zltzlt 发表于 2020-3-22 17:43:58

永恒的蓝色梦想 发表于 2020-3-21 20:18


108 ms

zltzlt 发表于 2020-3-22 17:44:30

塔利班 发表于 2020-3-21 20:42


164 ms

zltzlt 发表于 2020-3-22 17:45:15

TJBEST 发表于 2020-3-21 20:43


输入 [, , ] 出错

zltzlt 发表于 2020-3-22 17:48:43

flamezyy 发表于 2020-3-21 21:24
不确定[]和[,]这种怎么算,就当是False来处理了

108 ms

sYMMetrY 发表于 2020-3-22 19:03:40

解题思路:

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

TJBEST 发表于 2020-3-22 20:19:58

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

zltzlt 发表于 2020-3-22 20:58:44

wcshds 发表于 2020-3-21 21:34


104 ms

zltzlt 发表于 2020-3-22 20:59:28

TJBEST 发表于 2020-3-21 22:26
我临时想到的一个方法,不过和第一个方法我不太清楚 谁更快。就是说不太清楚python的序列相等运算内部如何 ...

136 ms

zltzlt 发表于 2020-3-22 20:59:34

fan1993423 发表于 2020-3-21 22:37
这种呢 []是True还是False

True 和 False 都没关系

zltzlt 发表于 2020-3-22 21:00:46

fan1993423 发表于 2020-3-21 22:39


解答错误

输入:[, , ]
输出:False
预期结果:True

zltzlt 发表于 2020-3-22 21:02:04

suchocolate 发表于 2020-3-22 10:04
解题思路:
1.实际要循环的只有绿色区



第 4 行的 a 是 ls 吧

zltzlt 发表于 2020-3-22 21:02:32

旅途Z 发表于 2020-3-22 10:40


388 ms

zltzlt 发表于 2020-3-22 21:02:46

永恒的蓝色梦想 发表于 2020-3-22 12:19
楼主没有加专辑!@zltzlt

加了

zltzlt 发表于 2020-3-22 21:03:31

whosyourdaddy 发表于 2020-3-22 10:51
def func356(matrix):
    m = len(matrix)
    n = len(matrix)


104 ms
页: 1 [2] 3
查看完整版本: Python:每日一题 356