为什么不能直接使用 print(something.sort()) ?

我是 python 初学者,有人可以帮助解释为什么这个 print() 不起作用,并且 python 打印None结果吗?


list =['a','c','d','e']

print(list.sort())

所以如果我采取额外的步骤,我可以获得结果:


list =['a','c','d','e']

list.sort()

print(list)

提前谢谢了


Smart猫小萌
浏览 250回答 4
4回答

慕沐林林

list.sort() 是修改列表的修改函数。它本身不是一个列表。print(list.sort())会得到你None,因为没有列表可以从这个函数返回。

阿波罗的战车

list.sort()就地修改列表,这意味着它会在内存中的当前位置对列表进行排序,而不返回任何内容。您想要的是sorted(list),它会复制列表,对其进行排序,然后返回它。

萧十郎

回答您想要做的事情所暗示的问题:如果你想要一行打印排序列表,你可以使用print(sorted(the_list))请注意,sorted(the_list)返回 的新的排序版本the_list,并且the_list之后保持不变。

MM们

list.sort()不会将排序后的列表存储在新变量中,而是直接修改列表,将其视为一个过程。您仍然可以通过复制原始列表来保留原始列表,只需使用 build-itcopy方法代码:list =['c','a','d','e']# saving a copy of our original listoriginList = list.copy()print("original list:",originList)# sorting our listlist.sort()print("sorted list:",list)输出:oiginal list: ['c', 'a', 'd', 'e']  # the copy (now it's the original)sorted list: ['a', 'c', 'd', 'e']    # the original (now it's sorted)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python