问题标签 [setdefault]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2572 浏览

python - 避免在嵌套字典中存储值的键错误(Python)

介绍

以下字典具有三个级别的键,然后是一个值。

需要补充的例子。

问题陈述

我想创建代码来创建必要的嵌套键并避免任何键错误。

解决方案 1

我想出的第一个解决方案是:

似乎是合法的,但是将其嵌入到代码片段中令人难以置信。我探索了 Stackoverflow 的其他解决方案,并正在阅读 get() 和 setdefault() 函数。

解决方案 2

有很多关于 get() 和 setdefault() 的材料可以找到,但在嵌套字典上却没有那么多。最终我能够想出:

它是一行代码,因此实际上没有必要将其设为函数。易于修改以包括操作:

看起来很完美?

问题

当添加大量条目并进行大量修改时,选项2是否优于选项1?或者我应该定义函数 1 并调用它?我正在寻找的答案应该考虑到速度和/或潜在的错误。

例子

更多背景

我是一名业务分析师,正在探索使用 Python 创建 Graph DB,这将帮助我进行非常具体的分析。字典结构用于描述一个节点对其邻居之一的影响:

  • lv1 是节点从
  • lv2 是节点到
  • lv3 是迭代
  • 值是影响(以 % 为单位)

在第一次迭代中,节点 1 直接影响节点 2。在第二次迭代中,节点 1 影响节点 2 正在影响的所有节点。

我知道可以帮助我的软件包(networkx),但我想在开始使用它们之前了解 Python/GraphDB。

0 投票
2 回答
5881 浏览

python - setdefault vs defaultdict 性能

我正在为性能很重要的应用程序编写代码。我想知道为什么defaultdict似乎更快setdefault

我希望能够使用setdefault,主要是因为我不喜欢嵌套的打印输出defaultdict(参见下面的实现)。

在我的代码中,我需要测试是否element_id已经是字典的键。

这是我正在测试的两个功能:

IPython 输入和输出:

为什么比较setdefaultfunc慢。我认为底层代码是一样的。有没有办法提高它的速度?

谢谢

0 投票
2 回答
214 浏览

python - 使用 Python 解析 CSV

我有以下 csv 文件,其中包含三个字段 Vulnerability Title、Vulnerability Severity Level、Asset IP Address(显示漏洞名称、漏洞级别和存在该漏洞的 IP 地址)。我正在尝试打印一份报告,该报告将在其旁边的严重性列中列出漏洞以及具有该漏洞的 IP 地址的最后一列列表。

我想重新创建一个 csv 文件,该文件使用漏洞标题选项卡作为键,并创建第二个名为漏洞严重级别的选项卡,最后一个选项卡将包含所有具有漏洞的 IP 地址

因为我不能很好地解释。让我试着简化

假设我有以下 csv

我正在尝试按以下方式创建此 csv:

两种解决方案都是正确的。这也是我的最终脚本

谢谢你

0 投票
4 回答
118 浏览

php - MySQL SET DEFAULT 返回错误:查询为空

我有一个名为“users”的现有 MySQL(5.6.12 版)表,并试图通过 php(5.4.12 版)设置列默认值,例如:

但是,这会产生 SQL 错误(导致消息“查询为空”)。'username' 是一个 VARCHAR(200) 类型的列。

使用带引号的文字(例如 'John')作为默认值会导致相同的错误。(只是为了好玩,虽然我使用的是 MySQL,但我也尝试根据 SQL/MS Access 或 Oracle 语法修改查询,但它仍然不起作用)。

我究竟做错了什么?

编辑:问题解决了。上面的查询很好,没有任何问题。

我犯了一个令人难以置信的愚蠢错误,忘记$了前面的标志$query,即我的代码是写的$result = mysqli_query(query);

(您知道,我是一名拥有数十年经验的程序员。)

0 投票
1 回答
506 浏览

python - setdefault() 方法在这个反转字典实现中是如何工作的?

有人可以解释一下在下面的情况下对字典“逆”的分配是如何发生的吗?

输出当然是正确的:

{8:['美丽'],3:['有趣'],4:['我的','我们的'],5:['快乐','你的'],6:['星期天','朋友']}

Python 3.x 文档说:

设置默认值(键 [,默认值]):

如果键在字典中,则返回其值。如果不是,则插入值为默认值的键并返回默认值。默认默认为无。

让我用一个例子来说明我知道什么和不理解什么:

  1. 假设 new_key = "快乐"
  2. new_key 的值为 5
  3. setdefault() 被调用,让我们假设 5 已经在“yours”的字典中(据我所知,因为字典是无序的,这不一定是这种情况,但让我们假设)并将返回 ["yours" ] (我的猜测是这里发生了一些稍微不同的事情,所以事实上“inverse.setdefault(5, [])”返回了[“yours”]并不是真的,就是这样)
  4. append() 被调用并且 ["yours"] --> ["yours", "happy"] - 这就是我们剩下的。

我知道在 4 结束时我错了,因为实际上我们的列表已分配给键“5”。我不明白发生这种情况的时间点 - 似乎我们刚刚回来,真的应该分配:

但是,如果我运行这样的代码,我会收到错误 - 'NoneType' object has no attribute 'append'

任何解释都值得赞赏 - 我想我一定错过了关于这两种方法如何交互的一些东西。

PS这是我的第一个问题,如果问题性质/结构不是“这里的事情是如何完成的”,我们深表歉意。让我知道如何改进,我会尽力做到这一点!

0 投票
3 回答
651 浏览

windows - 连接两个同名播放设备时如何设置默认音频设备

当连接两个具有相同名称的播放设备时,我正在尝试设置默认音频设备。

详细信息: 对于单个或不同名称的播放设备,我可以使用 nircmd.exe 设置默认值。但是在我的笔记本电脑上连接 USB 扬声器时。在播放设备中,它显示两个与“扬声器”同名的扬声器。在这种情况下,我无法按照我的要求设置默认播放设备。默认情况下,将第一个扬声器设置为设置默认值。

所以有人可以帮我解决这个问题。

请参阅此场景的图片

0 投票
1 回答
1918 浏览

python - 嵌套字典中的setdefault()?

尝试使用 setdefult() 将嵌套字典中的值存储在搁置文件中。有什么简单的方法可以做到这一点?以下代码似乎使值不可变,例如,最后一行无法将“价格”值更改为 25。

我希望让它与搁置一起运行,然后稍后添加 SQL,但现在学习它可能更容易。让我知道你的想法。谢谢。

0 投票
4 回答
347 浏览

python - python中带有setdefault的全局变量

我对在 python 中使用 if setdefault() 的全局变量的行为有点困惑:

请找到有关如何使用 setdefault 引用/解决此问题的示例代码,有人可以帮我澄清这里发生了什么吗?

解析变量的主文件:

为变量赋值的测试文件:

输出 :

我无法理解为什么从 main.py 调用时 list(my_list) 变量显示为空,而 my_dict 显示数据正常?

任何帮助表示赞赏。蒂亚!

#

样本测试文件 2

输出:

有人可以对第二个测试文件有所了解吗,请耐心等待,尝试了解基础知识:)

蒂亚!

0 投票
1 回答
120 浏览

android - 如何在 Room Android 的外键中使用 set_default

我不明白如何set_default在 onDelete 中使用外键。

在哪里为子行设置默认值?请告诉我,我能做什么?

0 投票
2 回答
727 浏览

python - 为什么在使用 Python dict.setdefault 时出现此错误?

我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串。我们可以使用 setdefault 得到这个吗?

当我使用上面的代码时,我得到错误 -