【问题标题】:Why does sorting of a list work outside of, but not within the print function in Python? [duplicate]为什么列表的排序在 Python 的 print 函数之外起作用,但在 print 函数内部不起作用? [复制]
【发布时间】:2022-01-16 13:10:56
【问题描述】:

我有一个 Python 列表,我想按字母排序。 如果我直接在print() 函数中执行此操作,它会产生“无”,而如果我先对其进行排序然后打印它,它就可以正常工作。这是可重现的代码:

def main():
    l = ["Tina", "Alice"]
    print(l.sort())
    # yields "None"
    
    l.sort()
    print(l)
    # yields ["Alice", "Tina"]
    
if __name__ == "__main__":
    main()

有人可以向我解释一下 Python 的背景有什么不同吗?在print() 函数中,一些其他操作(如添加数字等)可以正常工作。谢谢!

【问题讨论】:

  • list.sort() 返回None,这就是它打印None 的原因。但是,它确实对列表进行了排序,因此如果在 print(l.sort()) 之后放置 print(l),您将得到排序列表。
  • 在向 Stack Overflow 发布问题之前,请阅读未按预期执行的函数的文档,在这种情况下为 sort
  • 感谢@MattDoMo!你是对的@jarmod,阅读更多内容可能也有帮助......

标签: python list


【解决方案1】:

这是因为sort函数返回None,它修改了列表本身。

还有sorted函数,它不会修改列表而是返回一个新的

print(sorted(l))

更多信息请看here

【讨论】:

  • 谢谢,真的很有帮助!!
猜你喜欢
  • 2022-06-29
  • 2022-11-03
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
相关资源
最近更新 更多