我想解释一下python列表管理优化和总体优化

我想解释一下python列表管理优化和总体优化,python,list,optimization,quicksort,Python,List,Optimization,Quicksort,我很难理解python的时间开销。 特别是在一个例子中,快速排序程序。以下是一些网站认为的python快速排序的最佳实现: def theirquicksort(list): """Quicksort using list comprehensions""" if list == []: return [] else: pivot = list[0] lesser = theirquicksort([x for x in l

我很难理解python的时间开销。 特别是在一个例子中,快速排序程序。以下是一些网站认为的python快速排序的最佳实现:

def theirquicksort(list):
    """Quicksort using list comprehensions"""
    if list == []:
        return []
    else:
        pivot = list[0]
        lesser = theirquicksort([x for x in list[1:] if x < pivot])
        greater = theirquicksort([x for x in list[1:] if x >= pivot])
        return lesser + [pivot] + greater
例如。 但如果我使用:

a+={True:3,False:1}[condition]

我浪费了很多时间吗?我会浪费时间吗?乍看起来,使用第一种可能性是没有问题的,但是在一个计算的中间,除了这一点之外,在这里添加1/3——当然,仅仅是一个例外——不是第一个,也不是最后一个操作,第二个可能性可能是有吸引力的。但这意味着调用字典类。那么,它有多聪明呢?

最好是每个问题问一个问题。第一部分的答案是

那么你问题的第二部分可以表述为

a += 3 if condition else 1

但我觉得这很难理解,我更喜欢你展示的if/then。二进制测试的字典对于测试来说有点过分。

用Python分析代码性能的一种方法:注意Python中的内置排序方法可能是在本机代码中实现的快速排序的优化变体,可能比任何Python源代码解决方案都要好。@Matt Coubrough Quicksort就是一个例子,在这里我不怀疑综合列表一更快,也不怀疑内置实现总是更好,但我想理解为什么会这样。(我的意思是,综合清单一)确实是重复的,对此表示歉意。我在相关问题列表中看到了它,但没有查找它,因为我不明白“分区例程”是什么意思。
a+={True:3,False:1}[condition]
a += 3 if condition else 1