元组/列表之间的区别是什么?它们的优点/缺点是什么?
当前回答
从5.3的文档中引证的方向。元组和序列:
虽然元组可能看起来类似于列表,但它们通常用于不同的情况和不同的目的。元组是不可变的,通常包含不同的元素序列,可以通过解包(参见本节后面的内容)或索引(对于namedtuples,甚至可以通过属性访问)访问这些元素。列表是可变的,它们的元素通常是同构的,并通过遍历列表来访问。
其他回答
如果你去散步,你可以随时在(x,y)元组中记下你的坐标。
如果你想记录你的旅程,你可以每隔几秒钟将你的位置添加到一个列表中。
但你不能反过来做。
只是一个快速扩展列表vs元组响应:
由于动态特性,list分配的位桶比实际需要的内存要多。这样做是为了防止在将来附加额外项时进行昂贵的重新分配操作。 另一方面,由于是静态的,轻量级元组对象不需要保留存储它们所需的额外内存。
List是可变的,tuples是不可变的。可变和不可变之间的主要区别是当您试图追加一个项时内存的使用。
当你创建一个变量时,一些固定的内存被分配给变量。如果它是一个列表,则分配的内存比实际使用的要多。例如,如果当前内存分配是100个字节,当你想追加第101个字节时,可能会再分配100个字节(在这种情况下总共是200个字节)。
然而,如果你知道你不经常添加新元素,那么你应该使用元组。Tuples精确地分配所需的内存大小,从而节省内存,特别是当您使用大块内存时。
列表是同构序列,而元组是异构数据结构。
列表用于循环,元组用于结构。“%s %s”%元组。
列表通常是同构的,元组通常是异构的。
列表是可变长度的,元组是固定长度的。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录