Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 混合列表在现实生活中是否有优势_Python_List - Fatal编程技术网

Python 混合列表在现实生活中是否有优势

Python 混合列表在现实生活中是否有优势,python,list,Python,List,我曾经使用过C#和Java,每当我需要一个列表时,我都想存储相同类型的对象,比如: List<Customer> customers; //or List<Invoice> invoices; 有数百个混合列表的例子,以及为什么可能的解释。 我理解为什么在python中可以有混合类型的列表,但我想不出一个实际例子在哪里有用 有一段时间我一直在想混合名单是否真的有好处。 或者只是:“我们不需要它,但我们可以!” 我是否遗漏了一些非常重要的关于混合列表的东西,这些东西会使

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

List<Customer> customers; 
//or
List<Invoice> invoices;
有数百个混合列表的例子,以及为什么可能的解释。
理解为什么在python中可以有混合类型的列表,但我想不出一个实际例子在哪里有用

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

我是否遗漏了一些非常重要的关于混合列表的东西,这些东西会使我成为一名更好的python程序员

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


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

Python列表存储相同类型的项——对其他对象的引用

或者只是:“我们不需要它,但我们可以!”


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

首先,正如上面链接中所提到的,记住像Java这样的语言将允许您创建一个
对象的数组,它与Python的默认
列表
非常相似

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

def get_row():
    response = input('Enter your name and score, separated by a space: ').split()
    return response[0], int(response[1])
现在返回一个包含字符串和整数的
元组

下面是另一个例子:

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

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

它具有导致多态性的应用程序。假设您有多个运动对象,如
socker
basketball
football
,每个运动对象的运动方式不同,但所有运动对象的运动方式都不同,因此您可以这样说

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

有趣的是,这些运动是不同的课程

我真的不明白这个问题。有时我需要存储不同类型事物的集合,有时我需要存储相同类型事物的集合。无论哪种方式,我都使用一个列表。在我的头顶上,是db表中一行中列的值。或者使用
*args
语法传递给函数的参数。最近我需要一个没有为某些索引定义值的列表,所以我使用了
None
。我需要一个同时包含
int
NoneType
(例如:
[1,3,2,None,4,None,1]
)的列表。JSON定期混合字典和列表。我无法想象必须将它们均匀地排列。正如我所说的,我理解python是如何工作的,我理解它所包含的内容,python不能做其他事情。你仍然没有回答我的问题是否有优势。>如果混合列表有真正的优势<有一些(摘自评论),但是在Python中,这个问题没有多大意义,因为你没有语言约束。
socker = Socker()
basketball = Basketball()
football = Football()
sportsILike = [socker, basketball, football]
for sport in sportsILike:
    sport.play()