python - 我想从较低的顺序对多列表进行排序,但我无法在一行中产生结果
问题描述
我想解决这个问题。
def quicksort(xs, key=(lambda x:x)):
if len(xs) > 1:
pivot = xs[0]
(left, right) = partition(key(pivot), xs[1:], key=key)
return quicksort(left,key=key) + [pivot] + quicksort(right,key=key)
else:
return xs
def partition(pivot, xs, key):
left = [x for x in xs if key(x) <= pivot]
right = [x for x in xs if key(x) > pivot]
return (left, right)
quicksort([1,[1,[5,[3]],7,9,4],[1,2,4,[3]],[1,[3,5],4,[2,[4]]]], lambda x:[max([(str(x[:i]).count('[')-str(x[:i]).count(']')) for i in range(len(str(x)))])])
我想要的结果是 1,[1,3,[5]],[1,3,5[6,[7]]] 像这样
解决方案
推荐阅读
- docker - 来自 2 个不同 pod 的 Kubernetes Helm Arquillian 测试
- rest - Restful API 设计:如何在 GET 集合上锁定记录?
- c# - 如何在asp.net核心中部署范围服务之前执行方法?
- javascript - 如何检查系统上是否执行了 Javascript?
- sql - 如何在 Redshift Query 中禁用使用缓存结果?
- django - 如何停止 django postgresql 时间戳转换
- node.js - AWS Lambda NodeJS:使用可选过滤器属性进行扫描
- python-3.x - 两种分类代码中的预测函数都有错误
- reactjs - 在反应中获取下拉列表的值
- angular - router.navigate 测试 TypeError:无法读取未定义的属性“根”