Python 替换dict和x27列表中的值;对象为';id';

Python 替换dict和x27列表中的值;对象为';id';,python,dictionary,tornado,Python,Dictionary,Tornado,我需要向WSHandler连接列表(Tornado、Python)添加更多值。我正在将连接添加到一个列表中,如soself.connections.append(self),但我需要添加更多信息,如self.connections.append({'id':self,'keyword':'})(稍后查找当前的selfid并替换关键字) 当我尝试基于self对象(如self.connections[self].filter='keyword')添加到列表时,我得到TypeError:列表索引必须是

我需要向WSHandler连接列表(Tornado、Python)添加更多值。我正在将连接添加到一个列表中,如so
self.connections.append(self)
,但我需要添加更多信息,如
self.connections.append({'id':self,'keyword':'})
(稍后查找当前的
self
id并替换关键字)

当我尝试基于
self
对象(如
self.connections[self].filter='keyword'
)添加到列表时,我得到
TypeError:列表索引必须是整数,而不是WSHandler。

那我该怎么做呢

编辑:设法找到正确的对象,如下所示:

def on_message(self, message):
    print message
    for x in self.connections:
        if x['id'] == self:
            print 'found something'
            x['keyword'] = message
            print x['keyword']
            print x

现在,如何从
连接中删除整个dict<代码>自我连接。删除(自我)
当然不再有效。

对于这个用例,您不需要连接列表。将其存储在对象本身中可能更容易。只需使用
self.filter='keyword'

否则:

for dict in self.connections:
    if dict['id'] == self:
        dict['keyword'] = 'updated'
或者,如果你喜欢简洁而不是清晰:

for dict in [dict for dict in self.connections if dict['id'] == self]:
    dict['keyword'] == 'updated'
要删除,请使用:

for dict in self.connections:
    if dict['id'] == self:
        self.connections.remove(dict)

对于这个用例,您不需要连接列表。将其存储在对象本身中可能更容易。只需使用
self.filter='keyword'

否则:

for dict in self.connections:
    if dict['id'] == self:
        dict['keyword'] = 'updated'
或者,如果你喜欢简洁而不是清晰:

for dict in [dict for dict in self.connections if dict['id'] == self]:
    dict['keyword'] == 'updated'
要删除,请使用:

for dict in self.connections:
    if dict['id'] == self:
        self.connections.remove(dict)

由于
self.connections
是一个列表,因此只能使用整数对其进行索引(如错误所示)。
self
这里是一个WSHandler对象,不是整数

我不是龙卷风专家,所以你应该试试汉斯说的


如果您仍然需要按照前面提到的方式进行操作,请尝试:
self.connections[self.connections.index(self)]
在列表中定位self对象。

由于
self.connections
是一个列表,因此只能使用整数对其进行索引(如错误所述)。
self
这里是一个WSHandler对象,不是整数

我不是龙卷风专家,所以你应该试试汉斯说的


如果您仍然需要按照上述方式进行操作,请尝试:
self.connections[self.connections.index(self)]
在列表中找到self对象。

谢谢。但它必须匹配连接列表中的正确ID。我如何确保它是正确的?啊,是的,我认为你是对的-只需将其存储在对象本身中就更容易了。基本上,如果你要查找的对象是
self
,那么就不需要根据其
id
从连接中检索它。在您的代码片段中,您没有显示存储匹配id的位置。它在哪里?实际上,没有“id”,它只是我对self对象的简称。见编辑,谢谢。但它必须匹配连接列表中的正确ID。我如何确保它是正确的?啊,是的,我认为你是对的-只需将其存储在对象本身中就更容易了。基本上,如果你要查找的对象是
self
,那么就不需要根据其
id
从连接中检索它。在您的代码片段中,您没有显示存储匹配id的位置。它在哪里?实际上,没有“id”,它只是我对self对象的简称。请参见编辑。