この権利について説明し
ます。Pythonの組み込み関数(「sorted」、「set」など)を使用できず、メソッドを宣言できず、条件を作成できない環境にいます(if) 、およびループを作成することはできません。ただし、次の場合を除きます。
メソッドを呼び出すことができます(ただし、毎回1つだけで、保存すると別の変数に戻ります)
foo python:item.sort(); #foo変数は、item.sort()が返す値を取ります
バーpython:foo.index(x);
リスト内包表記を行うことができます
[fooのアイテムのitem['bla']]
...それがこの質問に役立つとは思わないこと
'correct_order'リストがあり、次の値があります。
correct_order = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
そして、次の値を持つ'messed_order'リストがあります。
messed_order = [55, 1, 44, 3, 66, 5, 4, 7, 2, 9, 0, 10, 6, 8]
さて、ベースとして「correct_order」のインデックスを使用して、「messed_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)]
そして、私が望む'ordered_list'になります:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 55, 66, 44]
だから、どうすればこれを行うことができますか?
zope / ploneを知っている人のために、私はヘルパーpythonスクリプトがないスキンページ(.pt)にいます(スキンページでは不可能で、ブラウザーページでのみ可能だと思います。もしそうなら、方法を教えてください。そうします)。