55294


以下の、test.pyというファイルを実行したところ、エラーが出ます。  
sort()の行でエラーが出ているようですが、原因は何でしょうか？

また、配列内の要素に虚数が含まれている条件でsortする方法はありますでしょうか？

**test.py**

[code]

        import sys, json
        sys.path.append('/home/vagrant/.local/lib/python3.4/site-packages')
        from sympy import *
    
        x=Symbol('x')
    
        #数値が文字列化された配列
        str=['-1/4 + sqrt(15)*I/12', '-(135/64 + 15*sqrt(6)/16)**(1/3)/3 - 1/4 + 5/(16*(135/64 + 15*sqrt(6)/16)**(1/3))']
        #数値型に変換
        list = [sympify(v) for v in str]
        #並べ替え
        list.sort()
    
[/code]

**実行結果**

[code]

    $ python test.py
    Traceback (most recent call last):
      File "test.py", line 12, in <module>
        list.sort()
      File "/home/vagrant/.local/lib/python3.4/site-packages/sympy/core/expr.py", line 334, in __lt__
        raise TypeError("Invalid comparison of complex %s" % me)
    TypeError: Invalid comparison of complex -1/4 + sqrt(15)*I/12
    
[/code]

Windows上に、VitualBoxとVagrantでUbuntuの仮想環境を作って実行しています。

使用しているPythonのバージョンは `python --version`で調べたところ、2.7.6です。`python3
--version`だと、Python 3.4.3が表示されます。  
Homebrewのインストール等がうまくいかず、バージョンを新しいものに切り替えないまま使用しています。

虚数単位 _I_
が文字列中に含まれているのは、このプログラムの範囲外でのSympyモジュールの計算結果として出てきたものです。意図的に書いたものではないですが、他のプログラムの実行中にも虚数が出てくる可能性はあると思います。


CC BY-SA 4.0
2019-05-27T14:35:18.347
55293
2019-05-28T00:20:52.237
2019-05-28T00:20:52.237
22541
22541
question
python sympy sort
Pythonでsortした際のエラーについて


`sympify` した結果のオブジェクトが大小比較不可能なためではないでしょうか。


CC BY-SA 4.0
2019-05-27T14:40:38.837
55294
2019-05-27T14:40:38.837
806
55293
answer