混合名单在现实生活中有什么好处吗

2024-04-20 12:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我曾经使用过C#和Java,每当我需要一个列表时,我都想存储相同类型的对象,比如:

List<Customer> customers; 
//or
List<Invoice> invoices;

official Python-Doc表示:

Lists might contain items of different types, but usually the items all have the same type.

因此,这是可能的:

list = [1, 2, 3, "cat", some_object, "another cat", 4, "and a cat again"]

混合列表的例子有上百种,解释了为什么这是可能的。
我理解为什么在python中可以使用混合类型的列表,但是我想不出一个实际的例子。你知道吗

很长一段时间以来,我一直在想混合名单是否真的有好处。
或者只是:“我们不需要它,但我们可以!”

我是否错过了一些非常重要的关于混合列表的东西,这些东西会使我成为一个更好的python程序员?你知道吗

编辑:
我以为这个答案会给出python不能做其他事情的答案,所以让我重新表述一下:

或者仅仅是:“我们不需要它,但我们不能不这样做!”


Tags: orthe对象答案类型列表itemsinvoice
3条回答

它的应用导致多态性。假设您有多个运动对象,如sockerbasketballfootball,每个运动对象的播放方式不同,但所有运动对象的播放方式都不同,所以您可以这样说

socker = Socker()
basketball = Basketball()
football = Football()
sportsILike = [socker, basketball, football]
for sport in sportsILike:
    sport.play()

有趣的是那些运动是不同的课程!你知道吗

首先,正如上面链接的cross-site question中所引用的,记住像Java这样的语言可以让您创建一个Object数组,这与Python的默认list非常相似。你知道吗

其次,对于包含不同类型元素的数据结构,有一个非常常见的用例。举个例子:

def get_row():
    response = input('Enter your name and score, separated by a space: ').split()
    return response[0], int(response[1])

现在返回一个tuple,其中包含一个字符串和一个整数。你知道吗

下面是另一个例子:

names = ['Alice', 'Bob', 'Charlie']
scores = [8, 12, 9]
results = dict(zip(names, scores))

如果不能用一个字符串和一个整数创建tuple,我们可能必须执行类似于results = {name:scores[i] for i, name in enumerate(names)}的操作。我们可以吗?当然。。。但是,我们可以选择一个看起来更好的,甚至不必考虑我们的数据结构是否包含strintobject,也不必在编译器允许我们使用它们之前强制转换object,这很好。你知道吗

Python列出了对其他对象的相同类型引用的存储项。你知道吗

Or is it just: "we don't need it, but we can!"

不,不是。Python没有类型检查,所以它相当于“因为我们不能做其他事情”。你知道吗

相关问题 更多 >