鱼C论坛

 找回密码
 立即注册
查看: 580|回复: 5

[已解决]列表循环出现None

[复制链接]
发表于 2025-5-27 11:44:40 | 显示全部楼层 |阅读模式
60鱼币
循环里note1设定为空列表,但是报错显示note1 = None,哪位大佬帮看看是什么问题
filename = 'pins.asc'
note1 = []
data = []
with open(filename, encoding='utf-8') as f:
    pinss = f.readlines()
for pins in pinss:
    if 'Part' in pins:
        pins1 = pins.split(' ')
        pins2 = [item for item in pins1 if item.strip()]
        pins1[:] = pins2
        print(pins1)
        part_name = pins1[1]
    elif '\n' == pins:
        note = ','.join(note)
        data = data.append((part_name,note))
        note1 = []
    else:
        pins1 = pins.split(' ')
        pins2 = [item for item in pins1 if item.strip()]
        pins1[:] = pins2
        pins3 = pins1[5]
        note1 = note1.append(pins3)
        print(pins3)
最佳答案
2025-5-27 11:44:41
问题出在 note1 = note1.append(pins3) 和 data = data.append((part_name,note)) 这两行代码上。

在 Python 中,list.append() 方法是原地修改列表(即直接修改原列表而不返回新列表),它的返回值是 None。所以当你执行 note1 = note1.append(pins3) 时,实际上是把 None 赋值给了 note1,导致后续操作报错。

同样的问题也存在于 data = data.append((part_name,note))。

修正后的代码应该是:

python
filename = 'pins.asc'
note1 = []
data = []
with open(filename, encoding='utf-8') as f:
    pinss = f.readlines()
for pins in pinss:
    if 'Part' in pins:
        pins1 = pins.split(' ')
        pins2 = [item for item in pins1 if item.strip()]
        pins1[:] = pins2
        print(pins1)
        part_name = pins1[1]
    elif '\n' == pins:
        note = ','.join(note1)  # 这里应该是note1而不是note
        data.append((part_name,note))  # 直接调用append,不要赋值
        note1 = []
    else:
        pins1 = pins.split(' ')
        pins2 = [item for item in pins1 if item.strip()]
        pins1[:] = pins2
        pins3 = pins1[5]
        note1.append(pins3)  # 直接调用append,不要赋值
        print(pins3)
主要修改:

移除了 note1 = note1.append(pins3) 中的赋值,改为直接 note1.append(pins3)

移除了 data = data.append((part_name,note)) 中的赋值,改为直接 data.append((part_name,note))

修正了 note = ','.join(note) 应该是 note = ','.join(note1)(假设你想连接的是 note1 列表)

这样修改后应该就不会出现 note1 = None 的错误了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-3 06:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表