Django python 中的字典

发布于 2024-10-20 18:59:55 字数 395 浏览 2 评论 0原文

在下面的代码中,Maps.objects.all()返回表中的所有对象,getdescription将返回两个变量,即name、description。

现在我的问题是构建一个字典。如果这个名字不在字典中,那么我应该添加它。应该如何完成。

编辑 这需要在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})

In the follwoing code Maps.objects.all() returns all the objects in the tables and get description will return two variables namely name,description.

Now my question i am constructing a dicetionary.If the name is not in the dictionary then i should add it.How this should be done.

EDIT
This needs to be done on 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})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蝶舞 2024-10-27 18:59:55

据我了解,如果字典中的键不存在,您将尝试为其分配一个值。这是字典的有用页面。

现在,为了解决您的问题,这应该可以满足您的要求:

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

From what I understand, you're trying to assign a value to a key in a dictionary if it doesn't exist. Here's a helpful page for dictionaries.

Now, to address your question, this should do what you want:

labels = {}
maps = Maps.objects.all()
for lm in maps:
    name, description = getDescription(lm.name, lm.type)
    if name not in labels:
        labels[name] = description
终陌 2024-10-27 18:59:55

你应该使用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)

you should use 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)
背叛残局 2024-10-27 18:59:55

在一行中完成此操作的更好方法是:

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

A much better way to do this in a single line:

labels = dict(Maps.objects.values_list('name', 'description'))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文