You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码调用split后输出内存地址而非列表分割值的问题求助

Python代码中split方法调用错误导致输出异常的解决办法

嘿,我来帮你搞定这个问题!你遇到的核心问题其实很典型——调用字符串的split()方法时忘记加括号,导致代码没有执行分割操作,反而把方法本身的引用(看起来像“内存地址”)添加到了列表里。

问题分析

在你的代码里,这一行是关键错误:

yumm= yumm+[line.split]

这里的line.split是指向字符串的split方法对象本身,而不是执行分割后得到的结果。当你把它添加到列表中,打印出来的自然就是这个方法对象的引用(比如<built-in method split of str object at 0x...>这类内容),而不是你预期的分割后的字符串列表。

另外你尝试过的yumm=yumm.split()也不对,因为yumm是一个列表,列表类型并没有split()方法,这么写会直接抛出AttributeError异常。

修正后的代码

只需要给split加上括号,让它执行分割操作就可以了:

def hungry(filename):
    food = open(filename)
    yumm=[]
    for line in food:
        # 给split加上括号,执行字符串分割
        yumm = yumm + [line.split()]
    print(yumm)
    # 记得手动关闭文件
    food.close()

hungry("nomnom.txt")

额外优化建议

为了更安全地处理文件,推荐使用with语句,它会自动帮你关闭文件,避免资源泄漏,同时代码也更简洁:

def hungry(filename):
    yumm = []
    with open(filename) as food:
        for line in food:
            # 先strip去掉每行末尾的换行符,再执行split更合理
            yumm.append(line.strip().split())
    print(yumm)

hungry("nomnom.txt")

内容的提问来源于stack exchange,提问作者Cassiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 03:17:33