我目前正在阅读Mark Lutz撰写的学习Python第5版,并且遇到了短语" Physically Stored Sequence"。
根据我迄今为止所学到的,序列是一个对象,其中包含可以按从左到右的顺序索引的项目,例如字符串,元组和列表。
因此,对于"物理存储序列",这是一个由变量引用的序列,以便稍后在程序中使用吗?或者我没有得到它?
提前感谢您的回答。
答案 0 :(得分:3)
通过对比可以最好地解释物理存储序列。它是一种“可迭代”类型,另一种类型的主要示例是“生成器”。
生成器是一个可迭代的,这意味着您可以像在“for”循环中一样迭代它,但它实际上并不存储任何东西 - 它只是在请求时吐出值。例如,伪随机数生成器,整个itertools
包,或者您使用yield
自己编写的任何函数。这些事情可以成为“for”循环的主题,但实际上并不“包含”任何数据。
物理存储的序列然后是包含其数据的可迭代的。示例包括Python中的大多数数据结构,例如列表。如果序列中的项具有任何特定的引用计数或类似的任何内容(例如,None
对象在Python中只存在一次,那么[None, None]
并不完全“存储” “它两次。”
物理存储序列的一个关键特性是你通常可以多次迭代它们,有时会获得除“第一个”以外的项目(当你在其上调用next()
时,任何可迭代的项目)
所有这一切,这句话并不常见 - 当然不是你期望看到或用作工作日Python程序员的东西。