2014-10-12 84 views
-3

我想创建所有数据客户端发送到服务器的字典密钥。如何在不使用'='的情况下初始化字典,因为每次建立连接时,我都想将自己附加到列表[数据]中。问题初始化字典不使用'='

我得到一个错误,用下面的代码

factory.list = {} 
. 
. 
. 
def dataReceived(self,data): 
    self.factory.list[data].append(self) 
+1

我不确定我是否理解。你在寻找'self.factory.list.setdefault(data,[])。append(self)'? – freakish 2014-10-12 07:42:50

+0

什么是错误? – 2014-10-12 08:01:03

回答

0

看来你要一个列表添加到字典,如果它不存在,就:

def dataReceived(self,data): 
    self.factory.list.setdefault(data, []).append(self) 

这相当于:

def dataReceived(self,data): 
    if data not in self.factory.list: 
     self.factory.list[data] = [] 
    self.factory.list[data].append(self) 
1

使用factory.list = collections.defaultdict(名单)