为何Python中print(list.append())输出None,而print(lst[1])可正常运行?
为什么
print(lst.append(1))输出None,但print(lst[1])正常工作? 核心原因:list.append()的设计逻辑
append()是Python列表的原地修改方法:它直接在原列表里添加元素,不会创建并返回新的列表。这类原地修改的方法(比如sort()、extend())统一返回None,这是Python的设计惯例。- 所以你执行
print(lst.append(1))时,打印的是append()方法的返回值,也就是None。
为什么print(lst[1])能正常输出?
虽然append()返回None,但原列表lst已经被实实在在修改了:执行lst.append(1)后,lst从[2,3,4]变成了[2,3,4,1]。此时lst[1]对应的元素是3,自然能正常打印出结果。
举个更直观的对比示例:
lst = [2,3,4] # 先执行append,原列表被修改 lst.append(1) # 打印原列表,能看到修改后的结果 print(lst) # 输出 [2,3,4,1] print(lst[1]) # 输出 3
内容的提问来源于stack exchange,提问作者Maleficent
相关产品推荐
相关产品推荐

