0

私のコードは、2 つのデータ リストを読み取り、互いに減算することになっています。このエラーが表示される理由と解決方法を教えてください。

完全なエラーは次のとおりです。

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 ドキュメントから:

map(関数、イテラブル、...)

...1 つの iterable が別の iterable よりも短い場合、None アイテムで拡張されていると見なされます...

あなたのリストは同じ長さではないので、フロートから None を差し引こうとしていると思います。

于 2014-08-15T14:54:39.573 に答える