0

我的代码应该读取并减去两个数据列表。为什么我会收到此错误,我该如何解决?

这是完整的错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "spectra.py", line 32, in SpectraTest
    subt = map(sub, flux, flux1)
TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'

这是代码:

import csv

def SpectraTest():
    wave_num = []
    flux = []
    wave_num1=[]
    flux1 = []
    with open ("H20_Glass.CSV", "rb") as csvfile:
        datareader= csv.reader(csvfile, delimiter = ",")
        for row in datareader:
            tempdata = row
            wn = tempdata[0]
            f1 = tempdata [1]
            wn = eval(wn)
            f1 = eval(f1)
            wave_num.append(wn)
            flux.append(f1)

    with open ("blankGlass.CSV", "rb") as csvfile:
        datareader= csv.reader(csvfile, delimiter = ",")
        for row in datareader:
            tempdata1 = row
            wn1 = tempdata1[0]
            f2 = tempdata1[1]
            wn1 = eval(wn1)
            f2 = eval(f2)
            wave_num1.append(wn1)
            flux1.append(f2)
        map(float, flux1)
        map(float, flux)
        from operator import sub
        subt = map(sub, flux, flux1)
        wave_num1.reverse()
        wave_num.reverse()
        print("Number of wave numbers " + str(len(wave_num1)))
        print("Number of flux numbers = "+ str(len(flux1)))

        print("Number of wave numbers " + str(len(wave_num)))
        print("Number of flux numbers = "+ str(len(flux)))
        print subt
    csvfile.close()
4

1 回答 1

0

来自 Python 文档:

地图(函数,可迭代,...)

...如果一个可迭代项比另一个短,则假定使用 None 项进行扩展...

我猜您的列表长度不同,因此它试图从浮点数中减去 None 。

于 2014-08-15T14:54:39.573 回答