9

在 python 文档列表中定义为:

可变序列,通常用于存储同质项目的集合(其中精确的相似程度将因应用程序而异)。

为什么它用于存储同类项目的集合?

那么字符串和 int 项是否也是同质的?

a = [12,"hello"]
4

3 回答 3

12

同质的意思是“相同或相似的种类或性质”

虽然任何值都可以与任何其他值一起存储在列表中,但这样做时,在处理序列时必须扩大“种类或性质”的定义。在这种扩展(或“统一”)期间,可以对序列中的每个项目执行的操作集成为所有项目之间共享的“最低通用操作集” 。

这就是为什么“[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()]
于 2013-11-01T19:08:55.250 回答
2

虽然从技术上讲,您可以将任何对象存储在列表中:

[12, "hello", list, list()]

正如文档所说,列表通常用于存储类似的项目:

[12, 24, 99]
["hello", "goodbye"]
[list, dict, int]

“同质”的意思就是“相似”。

于 2013-11-01T19:09:38.580 回答
2

它讨论了一个常见的用例(这就是它说“通常”的原因)。如您的问题中的示例所示,既不期望也不强制执行同质性。即使项目“同质”的含义也没有精确定义:文档说这“将因应用程序而异”。

于 2013-11-01T19:10:22.193 回答