所以看起来他们的用例很明确。从功能上来说,列表提供了操作的超集,元组的性能更高。
我的团队在程序过程中创建的大多数数组实际上都是不可变的。我们迭代它们,对它们应用映射、减少、过滤,可以将它们插入数据库等。所有这些都不需要在类似数组的结构上插入、弹出或附加。
然而,列表似乎不仅是我的开发人员的默认(也是唯一)选择,而且似乎甚至受到许多库 API 的青睐来传递数据(例如我大量使用的 Polars、tensorflow 等)。
甚至不像使用元组那样需要一些特殊的技能、知识或理解另一种数据结构,就下标或迭代的必要语法而言,它实际上是相同的。
我在这里的推理中遗漏了什么?
这不是偏见的问题。按照惯例,列表用于同质数据,元组用于异构数据,除非对可变性或散列性的要求迫使相反的情况发生。
例如,如果
seq[2]
代表“第三件事”,seq[3]
代表“第四件事”,则使用列表,而如果 seq[2]
代表“收入”,seq[3]
代表“生日”,则使用列表使用元组。