我已经开始学习数据结构和算法。请帮助我解决我的疑问。
可以说列表、元组和字典是一种引用数组吗?
我正在浏览书中的示例,其中写道,我们需要一个医疗信息系统来跟踪当前分配到某家医院病床的患者。如果我们假设医院有 200 张病床,并且这些病床的编号从 0 到 199 很方便,我们可能会考虑使用基于数组的结构来维护当前分配给这些病床的患者姓名。例如,在 Python 中,我们可能会使用名称列表,例如:
[雷内,约瑟夫,珍妮特,乔纳斯,海伦,弗吉尼亚,...]
为了用数组表示这样的列表,Python 必须遵守数组的每个单元使用相同字节数的要求。然而元素是字符串,字符串自然有不同的长度。Python 可以尝试为每个单元保留足够的空间来保存最大长度的字符串(不仅是当前存储的字符串,还包括我们可能想要存储的任何字符串),但这会很浪费。相反,Python 使用对象引用数组的内部存储机制来表示列表或元组实例。在最低级别,存储的是序列元素所在的连续内存地址序列。图 1 显示了此类列表的高级图
https://i.stack.imgur.com/7FffP.jpg
我的理解是python存储“Rene”或“Joseph”的内存地址。但是内存地址也会随着名称中的字符数而改变,比如每个 Unicode 占用 2 个字节的空间。
现在还写到“虽然各个元素的相对大小可能会有所不同,但用于存储每个元素的内存地址的位数是固定的(例如,每个地址 64 位,即 8 个字节)。如果字符很长并且不能以 64 位存储内存地址?