将NoneType分配给Dict

Uni*_*ent 12 python dictionary list typeerror nonetype

我试图将无分配给dict中的键,但我得到一个TypeError:

self._rooms[g[0]] = None
TypeError: 'NoneType' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

我的代码在这里:

r = open(filename, 'rU')
    for line in r:
        g = line.strip().split(',')
        if len(g) > 1:
            r1 = g[0]
            h = Guest(g[1], str2date(g[2]), str2date(g[3]))
            self._rooms.set_guest(r1, h)
        else:
            self._rooms[g[0]] = None
    r.close()
Run Code Online (Sandbox Code Playgroud)

之前它会让我分配,但不会.它很奇怪 :/

Jak*_*yer 12

例外清楚地表明TypeError: 'NoneType' object does not support item assignment这表明self._rooms实际上是这样None

编辑:正如你自己说的那样

self._rooms = {} 
Run Code Online (Sandbox Code Playgroud)

要么

self._rooms = dict()
Run Code Online (Sandbox Code Playgroud)

将做你需要清除字典

  • 尝试`None [3] = 4`在你的翻译中你会得到完全相同的异常^^ (4认同)