除了“list”之外,更好的Python列表名称

21 投票
7 回答
13930 浏览
提问于 2025-04-17 04:25

是不是不应该把列表变量命名为“list”?因为这个名字和Python的保留关键字冲突了。那么,应该用什么更好的名字呢?“input_list”听起来有点别扭。

我知道这可能跟具体问题有关,但比如我有一个快速排序的函数,像quick_sort(unsorted_list)这样的名字还是有点长,因为从上下文来看,传给排序函数的列表显然是未排序的。

有什么好的建议吗?

7 个回答

6

Python 这个语言特别注重代码的可读性。所以,给变量起名字的时候,应该选择那些能让人容易理解的名字。你可以看看 PEP20 这个文档。
总的来说,保持一致性是个好原则,但在以下情况下可以打破这种一致性:

  1. 如果按照规则来做反而让代码变得难以阅读,即使是对那些习惯看规则代码的人来说也是如此。

  2. 为了和周围的代码保持一致,即使这些代码也打破了规则(可能是历史原因造成的)——不过这也是一个机会,可以把别人的代码整理得更好(这符合极限编程的风格)。

另外,命名函数的时候也有一些规则:使用小写字母,必要时用下划线分隔单词,以提高可读性。
这些内容都来自于 PEP 8

6
goats

变量名应该能说明它们代表的内容,而不仅仅是它们的类型。

28

我喜欢用里面内容的复数形式来命名变量。比如说,如果我有一个名字的列表,我就叫它 names,这样我可以写:

for name in names:

我觉得这样看起来挺不错的。不过,为了让自己更清楚,变量的命名应该让人一眼就能知道它是什么。这个命名方式还有个好处,就是不管是什么类型的对象都能用,因为 names 可以是任何可迭代的对象,比如元组、字典,或者你自己定义的可迭代对象。你可以在这些对象上用 for name in names,如果你有一个叫 names_list 的元组,那就显得有点奇怪了。

(下面评论补充的)有些情况下你不需要这样做。比如用 i 来索引一个短循环是可以的,因为 i 通常就是这么用的。如果你的变量在代码中使用的地方超过一页,导致你不能一次性看到它的整个生命周期,那你就应该给它起个合适的名字。

撰写回答