错误<0x275b990>这是什么意思

2024-04-25 17:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个功能,但我不熟悉错误或如何纠正它。你知道吗

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处的错误映射对象


Tags: in功能fordef错误linerangefile1
2条回答

error map object at 0x275b990

这不是一个错误-您只需打印迭代器的地址,由map返回。您可以打印list(w),以确保一切正常。当然,您不应该返回list(w),因为它是不必要和昂贵的。你知道吗

在python3+中,map()是一个类,而不是函数(documentation here)。一个map实例可以被迭代,序列中的每一项只会在需要时被处理(“延迟评估”)。这样就不需要创建实际的列表,节省了时间和内存,如果您不需要所有的项(例如,当您达到某个值时停止处理),那么您也可以保存一堆函数调用。一般来说,您需要使用map()执行以下操作:

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

如果确实需要实际列表,只需将其转换为:list()构造函数接受任何iterable,包括map()实例:

w = list(map(float, listnum))

打印map对象时看到的不是错误,而是对象的默认Python显示(repr())。代码是十六进制对象的id(),在CPython中是它的内存地址;这主要用于区分一个实例和其他实例。你会经常看到的,所以要习惯。你知道吗

相关问题 更多 >