在 python 文档列表中定义为:
可变序列,通常用于存储同质项目的集合(其中精确的相似程度将因应用程序而异)。
为什么它用于存储同类项目的集合?
那么字符串和 int 项是否也是同质的?
a = [12,"hello"]
同质的意思是“相同或相似的种类或性质”。
虽然任何值都可以与任何其他值一起存储在列表中,但这样做时,在处理序列时必须扩大“种类或性质”的定义。在这种扩展(或“统一”)期间,可以对序列中的每个项目执行的操作集成为所有项目之间共享的“最低通用操作集” 。
这就是为什么“[list are]通常用于存储同类项的集合”的原因——因此可以用适当的统一级别来处理序列中的项:
# a list of animals that can "speak"
animals = [Dog(), Cat(), Turkey()]
for a in animals:
a.speak()
# .. but a string cannot "speak"
animals = [Dog(), "Meow!", Turkey()]
虽然从技术上讲,您可以将任何对象存储在列表中:
[12, "hello", list, list()]
正如文档所说,列表通常用于存储类似的项目:
[12, 24, 99]
["hello", "goodbye"]
[list, dict, int]
“同质”的意思就是“相似”。
它讨论了一个常见的用例(这就是它说“通常”的原因)。如您的问题中的示例所示,既不期望也不强制执行同质性。即使项目“同质”的含义也没有精确定义:文档说这“将因应用程序而异”。