Pythonでsortした際のエラーについて
以下の、test.pyというファイルを実行したところ、エラーが出ます。
sort()の行でエラーが出ているようですが、原因は何でしょうか?
また、配列内の要素に虚数が含まれている条件でsortする方法はありますでしょうか?
test.py
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()
実行結果
$ 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
Windows上に、VitualBoxとVagrantでUbuntuの仮想環境を作って実行しています。
使用しているPythonのバージョンは python --version
で調べたところ、2.7.6です。python3 --version
だと、Python 3.4.3が表示されます。
Homebrewのインストール等がうまくいかず、バージョンを新しいものに切り替えないまま使用しています。
虚数単位Iが文字列中に含まれているのは、このプログラムの範囲外でのSympyモジュールの計算結果として出てきたものです。意図的に書いたものではないですが、他のプログラムの実行中にも虚数が出てくる可能性はあると思います。