Python 程序员是否偏向于列表而不是元组?

问题描述 投票:0回答:1

基本事实

  • 列表是可变的(支持插入、追加等),元组则不然
  • 元组的内存效率更高,迭代速度更快

所以看起来他们的用例很明确。从功能上来说,列表提供了操作的超集,元组的性能更高。

观察

我的团队在程序过程中创建的大多数数组实际上都是不可变的。我们迭代它们,对它们应用映射、减少、过滤,可以将它们插入数据库等。所有这些都不需要在类似数组的结构上插入、弹出或附加。

问题

然而,列表似乎不仅是我的开发人员的默认(也是唯一)选择,而且似乎甚至受到许多库 API 的青睐来传递数据(例如我大量使用的 Polars、tensorflow 等)。

甚至不像使用元组那样需要一些特殊的技能、知识或理解另一种数据结构,就下标或迭代的必要语法而言,它实际上是相同的。

我在这里的推理中遗漏了什么?

python list performance data-structures iterable-unpacking
1个回答
0
投票

这不是偏见的问题。按照惯例,列表用于同质数据,元组用于异构数据,除非对可变性或散列性的要求迫使相反的情况发生。

例如,如果

seq[2]
代表“第三件事”,
seq[3]
代表“第四件事”,则使用列表,而如果
seq[2]
代表“收入”,
seq[3]
代表“生日”,则使用列表使用元组。

© www.soinside.com 2019 - 2024. All rights reserved.