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

您需要使用工程师j而不是数学家i作为 python 中的虚数单位。

您可以更改一些简单的内容,例如:

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

而不是line=line.split()你目前拥有的,这应该修复你的代码。

.split()请注意,如果您确实每行有一个数字,则根本不需要,您仍然需要将结果附加到您的容器中array。我会把那一点留给你。

顺便说一句,如果您有 numpy 可用,请考虑使用numpy.loadtxt来解析您的文件。

于 2013-05-09T06:25:33.630 回答