-4

私はこの機能を持っていますが、エラーや修正方法に精通していません。

def intify(file1):
    numbers=range(0,10)
    strnum=[]
    for x in numbers:
        strnum.append(str(x))

    number1=[]
    for line in file1:
        for split in line.split(' '):
                number1.append(split)

    listnum=[]
    for x in number1:
        if x[0] in strnum:
            listnum.append(x)

    w=map(float, listnum)
    #return w
    print(w)

0x275b990 のエラー マップ オブジェクト

4

2 に答える 2

4

Python 3+ ではmap()、関数ではなくクラスです (ドキュメントはこちら)。mapインスタンスは繰り返し処理でき、シーケンス内の各項目は必要な場合にのみ処理されます (「遅延評価」) 。この方法では、実際のリストを作成する必要がなく、時間とメモリを節約できます。また、すべてのアイテムが必要ない場合 (たとえば、特定の値に達したときに処理を停止する場合) は、一連の関数呼び出しも節約できます。一般に、次のようなことをしたいと思うでしょうmap():

for num in map(float, listnum):
     print(num)   # or do something else

本当に実際のリストが必要な場合は、それを 1 つに変換するだけです。コンストラクターは、インスタンスlist()を含むあらゆる iterable を受け入れます。map()

w = list(map(float, listnum))

オブジェクトを印刷するときにmap表示されるのはエラーではなく、オブジェクトのデフォルトの Python 表示 ( repr()) です。コードはid()オブジェクトの 16 進数であり、CPython ではメモリ アドレスです。これは主に、あるインスタンスを他のインスタンスと区別するのに役立ちます。よく見かけますので、慣れてください。

于 2013-05-08T15:49:21.863 に答える