为什么Python列表调用reverse()后输出None?如何实现姓名顺序反转
问题根因
输出结果为None的核心原因:
- Python的
list.reverse()是原地调整列表元素顺序的方法,本身不返回反转后的列表。Python中没有显式返回值的方法,默认会返回None。你把这个方法的执行结果赋值给变量a,拿到的自然就是None;实际上列表的反转操作已经直接作用在最初拆分得到的fn变量上,并没有生成新的列表对象。
能达成目标格式的正确实现
想要最终输出LastName FirstName的格式,有两种常用实现方式:
- 适配
reverse()的原地修改特性,不额外接收方法返回值,反转原列表后再拼接成目标格式打印:
fn = "FirstName LastName".split(" ") # 直接执行反转操作,修改原列表 fn.reverse() # 用空格将反转后的列表元素拼接为目标字符串 print(" ".join(fn))
- 如果需要拿到独立的反转结果赋值给变量、且不改动原列表,可以使用列表切片的反转写法——这种写法会生成全新的反转列表,有明确可赋值的返回值:
fn = "FirstName LastName".split(" ") a = fn[::-1] print(" ".join(a))
内容的提问来源于stack exchange,提问作者User1011
相关产品推荐
相关产品推荐

