Gab*_*ira 2 python sorting plone list
我将解释这一点:
我在一个我不能使用python内置函数的环境中(比如'sorted','set'),不能声明方法,不能创造条件(if) ,并且不能制作循环,除了:
可以调用方法(但每次只调用一个,并保存另一个变量的返回值
foo python:item.sort(); #foo变量获取item.sort()返回的值
bar python:foo.index(x);
并且可以做列表理解
[item ['bla'] for foo中的项目]
......我认为这不会对这个问题有所帮助
我有一个'correct_order'列表,其中包含以下值:
correct_order = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
我有一个'messed_order'列表,其中包含以下值:
messed_order = [55, 1, 44, 3, 66, 5, 4, 7, 2, 9, 0, 10, 6, 8]
Run Code Online (Sandbox Code Playgroud)
好吧,我必须重新排序'messed_order'列表,使用'correct_order'索引作为基础.未包括在correct_order中的其余项目的顺序无关紧要.
这样的东西会解决(再次,除了我不能使用循环):
for item in correct_order:
messed_order[messed_order.index(item)], messed_order[correct_order.index(item)] = messed_order[correct_order.index(item)], messed_order[messed_order.index(item)]
Run Code Online (Sandbox Code Playgroud)
并且会导致我想要的'ordered_list':
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 55, 66, 44]
Run Code Online (Sandbox Code Playgroud)
那么,我该怎么做呢?
对于那些了解zope/plone的人,我在皮肤页面(.pt)上,没有辅助python脚本(我认为这对于皮肤页面是不可能的,仅适用于浏览器页面.如果是,告诉我如何和我会这样做.
小智 5
这很难回答,不知道究竟是什么允许的,什么不是.但是这个O(N ^ 2)解决方案怎么样?
[x for x in correct_order if x in messed_order] + [x for x in messed_order if x not in correct_order]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4559 次 |
| 最近记录: |