Python diagsUpRight函数输出字符串反转报错及正确实现咨询
代码问题分析
- 语法错误:
reversed是Python内置函数,你使用方括号[]传递参数属于语法错误,函数传参需要用圆括号(),这是你调用函数得到异常结果的直接原因。 - 逻辑错误:即便修正语法,直接将整个列表传入
reversed是反转列表的元素顺序,而你的需求是将列表内每个字符串单独倒序,两者逻辑完全不匹配。
正确实现
你只需要在拼接每个列的字符串后,对单个字符串做反转即可,Python中用[::-1]切片是反转字符串最简洁的写法,修改后代码如下:
def diagsUpRight(M): n = len(M) m = [['']*i + row + ['']*(n-i-1) for i, row in enumerate(M)] return [''.join(col)[::-1] for col in zip(*m)]
如果你一定要用reversed实现,写法如下:
def diagsUpRight(M): n = len(M) m = [['']*i + row + ['']*(n-i-1) for i, row in enumerate(M)] return [''.join(reversed(col)) for col in zip(*m)]
两种写法运行后都可以得到你需要的输出结果。
内容的提问来源于stack exchange,提问作者Bruffff
相关产品推荐
相关产品推荐

