当前位置: 首页 > 知识库问答 >
问题:

如何创建键或追加元素键?

西门骁
2023-03-14

我有一本空字典。名称:dict_x它将具有值为列表的键。

从一个单独的迭代中,我获得一个键(例如:key\u 123)和一个项(一个元组),以放置在dict\u x的值key\u 123列表中。

如果此键已存在,我想附加此项。如果这个键不存在,我想用一个空列表创建它,然后附加到它,或者只是用一个元组创建它。

将来,当这个键再次出现时,由于它存在,我希望再次追加该值。

我的代码包括:

获取密钥和值。

查看dict_x中是否存在非密钥。

如果不创建:dict_x[key] == []

之后:dict\u x[key]。追加(值)

这是做这件事的方法吗?我应该尝试使用尝试/除块吗?

共有3个答案

凌朗
2023-03-14

您可以为此使用默认判决。

from collections import defaultdict
d = defaultdict(list)
d['key'].append('mykey')

这比setdefault稍微有效一些,因为您不会创建新的列表,也不会使用这些列表。每次调用setdefault都将创建一个新列表,即使该项已存在于字典中。

夏经武
2023-03-14

以下是各种方法,您可以比较它的外观并选择您喜欢的。我以一种我认为最“蟒蛇式”的方式订购了它们,并评论了乍一看可能不明显的利弊:

使用集合.defaultdict

import collections
dict_x = collections.defaultdict(list)

...

dict_x[key].append(value)

优点:可能是最好的表现。缺点:在Python2.4.x中不可用。

使用dict().setdefault()

dict_x = {}

...

dict_x.setdefault(key, []).append(value)

缺点:无效地创建未使用的list()s。

使用尝试。。。除了

dict_x = {}

...

try:
    values = dict_x[key]
except KeyError:
    values = dict_x[key] = []
values.append(value)

或:

try:
    dict_x[key].append(value)
except KeyError:
    dict_x[key] = [value]
胥智
2023-03-14

使用dict.setdefault()

dict.setdefault(key,[]).append(value)

帮助(dict.setdefault):

    setdefault(...)
        D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
 类似资料:
  • 我正在制作一个React应用程序,允许你制作一个列表并保存它,但React一直在警告我,我的元素没有唯一的关键道具(元素列表/列表表单)。如何为用户创建的元素创建唯一的关键道具?下面是我的代码 我的超文本标记语言:

  • 问题内容: 我正在制作一个React应用程序,该应用程序允许您创建列表并保存它,但是React一直警告我我的元素没有唯一的键道具(元素List / ListForm)。如何为用户创建的元素创建唯一的键道具?下面是我的React代码 我的HTML: 问题答案: 您可以通过多种方式创建,最简单的方法是在迭代数组时使用索引。 例 无论您将数据放在何处,都可以在此处将第二个参数传递 给回调,这将是它的值,

  • dom中有两个 ,我想使用JavaScript/jQuery将这两个 包装到一个包装器div中。 有没有办法这样做? 原来的节点是这样的: 我想在那些周围添加包装器div,它应该如下所示: 上面的插入应该仅来自javascript或jquery。 先谢谢你。

  • 我有一个小程序,在2D数组中保存状态对和它们的首都。在此程序下面: 我需要用替换常规的二维数组。 我在stackoverflow上找到了一些线程,如何添加我想要的数组。以下是链接:如何在Java中创建二维ArrayList?以及如何声明2D字符串ArrayList?。但是这些讨论并没有解释如何在每个ArrayList中添加元素。我能做的最好的事情是创建新的ArrayList,然后添加一些元素,最后

  • 问题内容: 我有一本空字典。名称: 将具有其值为列表的键。 从一个单独的迭代中,我获得一个键(例如:)和一个项目(一个元组)以放置在value的列表中。 如果该密钥已经存在,我想添加此项目。如果此键不存在,我想用一个空列表创建它,然后追加到它或只在其中添加一个元组。 将来再次出现此键时,因为它存在,所以我希望再次附加该值。 我的代码包含以下内容: 获取关键和价值。 查看中是否存在 NOT 键。 如

  • 我想知道,我如何追加一个元素到一个ArrayList的结尾在Java?这是我到目前为止的代码: “randomStringGenerator”是一种生成随机字符串的方法。 我基本上想总是在ArrayList的末尾追加随机字符串,就像一个堆栈(因此命名为“推送”)。 非常感谢您抽出时间!