小编sTo*_*ic5的帖子

Python - 无意中删除列表解析中的重复项

虽然我不是全新的编程,但我是python的新手.有一些Haskell的经验并且学习python也实现了列表推导,我试图编写一个Haskell-esk快速排序函数.

def quicksort(unsorted):
    """Sorts a list least to greatest numerically using quicksort
    """
    if not unsorted:
        return []
    else:
        pivot, *rest = unsorted
        lower_sorted = quicksort([a for a in rest if a < pivot])
        upper_sorted = quicksort([a for a in rest if a > pivot])
        return lower_sorted + [pivot] + upper_sorted
Run Code Online (Sandbox Code Playgroud)

它会对给定的列表进行排序,但这样做会删除任何重复的元素; 显然,这不是排序功能中通常需要的功能.关于为什么会发生这种情况的任何想法,以及我如何解决这个问题(或者我错过的任何其他明显问题)?这是Python 3.6.0.

python list-comprehension quicksort duplicates

0
推荐指数
1
解决办法
107
查看次数