3

Python を使用して、ファイルから一連の複素数を配列に読み取りたいと考えています。整数に対してのみ行う方法を知っています。私はこれを試しましたが、実行すると、次のように表示されます: complex() arg is a malformed string. 複素数を読み取るにはどうすればよいですか? Pythonを学び始めたばかりです。

f=open("file.txt","r+")
array=[]
for line in f:
     line=line.split()
     if line: 
            line=[complex(i) for i in line]

私のファイルには複素数のみが含まれています:

1+i
1-i
1
2
-3
4

1 に答える 1

6

Pythonの虚数単位に jは、数学者ではなくエンジニアを使用する必要があります。i

次のような単純なものを変更できます。

line = line.replace('i', 'j').split()

現在持っているのではなくline=line.split()、これでコードが修正されます。

.split()1 行に本当に 1 つの数字がある場合はまったく必要なく、結果をコンテナーに追加する必要があることに注意してくださいarray。私はあなたにそれを少し残します。

余談numpy.loadtxtですが、numpy が利用可能な場合は、代わりにファイルの解析に使用することを検討してください。

于 2013-05-09T06:25:33.630 に答える