2014-10-12 99 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(名單)