在这里,我尝试使用以下逻辑反转字符串,
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/