为什么在Python中使用`sorted`而不是`sort`?

2024-05-23 21:37:38 发布

您现在位置:Python中文网/ 问答频道 /正文

由于不熟悉该语言,我无法理解为什么在Python中,两个内置函数sortedreversed是用过去的分词形式命名的,而其他函数如formatfilter是用动词形式命名的。你知道吗

为什么不能将这些函数命名为sortreverse,就像其他几种语言一样?你知道吗

从语义上讲,我更希望sorted返回一个布尔值——如排序?,表示传递的列表是否已排序,但这可能是因为其他语言对我的影响。你知道吗

但是,这样命名sortedreversed有我看不见的原因吗?你知道吗


更新因为几乎所有的答案/评论都漏掉了重点。我知道这两个函数都返回新对象,而不修改传递给它们的内容。你知道吗

但本着同样的精神,filter不能被命名为filtered,而format不能被命名为formatted?这不是更一致的命名跨语言吗?你知道吗


更新2:由于这个问题应该是基于意见的,因此可能只是语言设计师的意见。也许命名Python的内置函数并保持它们的一致性背后并没有任何理由。你知道吗

如果有理由的话,请帮助回答format是否也可能是formatted的一致性和一致性?你知道吗


Tags: 函数语言format排序动词filter命名内置
1条回答
网友
1楼 · 发布于 2024-05-23 21:37:38

在Python中,sort是就地排序函数,sorted是返回新排序集合的函数:

a = [2,3,1,4]
print(sorted(a))
print(a)
print(a.sort())
print(a)

输出:

[1, 2, 3, 4]
[2, 3, 1, 4]
None
[1, 2, 3, 4]

第一个打印是排序列表。原始列表在它之后不会更改。第三次打印是a.sort-None的结果(因为它不返回任何内容)。并且在这个函数调用之后对原始列表进行排序。你知道吗

同样的行为也适用于reverse/reversed函数。你知道吗

相关问题 更多 >