在python文档列表中定义为:
可变序列,通常用于存储同类项目的集合(其中精确的相似程度因应用而异)。
为什么它用于存储同类项目的集合?
字符串和int项是否同质?
a = [12,"hello"]
答案 0 :(得分:11)
同质意味着"of the same or a similar kind or nature"。
虽然任何值可以与任何其他值一起存储在列表中,但在处理时,“种类或性质”的定义必须加宽序列。在此扩展(或“统一”)期间,可以在序列中每个项目上执行的操作集成为 all 之间共享的“最低常见操作集”项目
这就是为什么“[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()]
答案 1 :(得分:2)
虽然您在技术上可以将任何对象存储在列表中:
[12, "hello", list, list()]
如文档所述,列表通常用于存储类似的项目:
[12, 24, 99]
["hello", "goodbye"]
[list, dict, int]
“同质”的含义只是“相似”。
答案 2 :(得分:2)
它讨论了一个常见的用例(这就是为什么它说“通常”)。如您的问题中的示例所示,同质性既不是预期也不是强制执行。即使对于“同质”的项目意味着什么也没有明确定义:医生说这“会因应用而异”。