2011-03-07 47 views
0

在下面的代碼中,Maps.objects.all()返回表中的所有對象並獲取描述,將返回兩個變量,即name,description。django python中的字典

現在我的問題是我正在構建一個dicetionary.If名稱不在字典中,那麼我應該添加它。如何做到這一點。

編輯 這需要上的python2.4

labels = {} 
    maps Maps.objects.all() 
    for lm in maps: 
    (name,description) = getDescription(lm.name,lm.type) 
    if name not in labels: 
     labels.update({name,description}) 

回答

0

完成從我明白,你想在字典中分配一個值的關鍵,如果它不存在。這是一個有用的網頁dictionaries

現在,來解決你的問題,這應該做你想做的:

labels = {} 
maps = Maps.objects.all() 
for lm in maps: 
    name, description = getDescription(lm.name, lm.type) 
    if name not in labels: 
     labels[name] = description 
0

你應該使用defaultdict

http://docs.python.org/library/collections.html

import collections 

labels = collections.defaultdict(list) 
maps = Maps.objects.all() 
for lm in maps: 
    name, description = getDescription(lm.name, lm.type) 
    labels[name].append(description) 
0

一個更好的方法來做到這一點的單行:

labels = dict(Maps.objects.values_list('name', 'description'))