Grasshopper :: randomにListをsortする
以前、リストをランダムにソートする方法を紹介しました。
【Grasshopper :: リストをランダムに並び替え】
この時は、Pythonでの方法を紹介しなかったので、今回改めてPythonでやってみました。
レシピ
Pythonでやるメリットとしては、[Python Script]コンポーネントが更新されるたびに、本当の意味でランダムになることです。
[Jitter]コンポーネントでは、シード値によってランダムな状態を保存できるので、データ及びシード値が同じだと全く同じ値になってしまい、再現性のあるランダムとなります。
完全にランダムにしたい場合には、PythonなどScriptのコンポーネントを使うと良いでしょう。
コードは以下の通りです。
ここでは、random.sample(range(len(x)),len(x))
でリストのインデックスをランダムに入れ替え、そのインデックスに合わせて新たにリストを追加する手法を採っています。
試しに、[Timer]コンポーネントを[Python Script]コンポーネントに繋いでみると、
こんな感じで、設定した秒ごとに値が変わります。
毎回異なる値が欲しい場合はぜひこちらをご活用ください。
使用した主なコンポーネント
- [Jitter] (Sets > Sequence > Jitter)
- [Python Script] (Maths > Script > Python Script)
- [Timer] (Params > Util > Timer)