python – 如何使用列表推导来反转字符串

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

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是一个inplace操作,因此它将更改列表并返回None.你应该使用反向功能,就像这样

"".join(reversed(rst))

我个人建议像这样使用slicing notation

rst[::-1]

例如,

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

转载注明原文:python – 如何使用列表推导来反转字符串 - 代码日志