在这里,我尝试使用以下逻辑反转字符串,

st = "This is Ok"
rst = list(st)
rst.reverse()
''.join(s for s in rst)

一切正常,但是当我尝试遵循以下逻辑时,我遇到了错误,
st = "This is Ok"
''.join(s for s in list(st).reverse())

这是一个错误,
----> 1 ''.join(s for s in list(st).reverse())

TypeError: 'NoneType' object is not iterable

请任何人解释以上过程。

最佳答案

list.reverse是一个就地操作,因此它将更改列表并返回None。您应该使用reversed函数,像这样

"".join(reversed(rst))

我个人建议像这样使用slicing notation
rst[::-1]

例如,
rst = "cabbage"
print "".join(reversed(rst))   # egabbac
print rst[::-1]                # egabbac

关于python - 为什么list.reverse不返回列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21901139/

10-12 20:10