问题标签 [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.
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。
python - setdefault vs defaultdict 性能
我正在为性能很重要的应用程序编写代码。我想知道为什么defaultdict
似乎更快setdefault
。
我希望能够使用setdefault
,主要是因为我不喜欢嵌套的打印输出defaultdict
(参见下面的实现)。
在我的代码中,我需要测试是否element_id
已经是字典的键。
这是我正在测试的两个功能:
IPython 输入和输出:
为什么比较setdefaultfunc
慢。我认为底层代码是一样的。有没有办法提高它的速度?
谢谢
python - 使用 Python 解析 CSV
我有以下 csv 文件,其中包含三个字段 Vulnerability Title、Vulnerability Severity Level、Asset IP Address(显示漏洞名称、漏洞级别和存在该漏洞的 IP 地址)。我正在尝试打印一份报告,该报告将在其旁边的严重性列中列出漏洞以及具有该漏洞的 IP 地址的最后一列列表。
我想重新创建一个 csv 文件,该文件使用漏洞标题选项卡作为键,并创建第二个名为漏洞严重级别的选项卡,最后一个选项卡将包含所有具有漏洞的 IP 地址
因为我不能很好地解释。让我试着简化
假设我有以下 csv
我正在尝试按以下方式创建此 csv:
两种解决方案都是正确的。这也是我的最终脚本
谢谢你
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);
(您知道,我是一名拥有数十年经验的程序员。)
python - setdefault() 方法在这个反转字典实现中是如何工作的?
有人可以解释一下在下面的情况下对字典“逆”的分配是如何发生的吗?
输出当然是正确的:
{8:['美丽'],3:['有趣'],4:['我的','我们的'],5:['快乐','你的'],6:['星期天','朋友']}
Python 3.x 文档说:
设置默认值(键 [,默认值]):
如果键在字典中,则返回其值。如果不是,则插入值为默认值的键并返回默认值。默认默认为无。
让我用一个例子来说明我知道什么和不理解什么:
- 假设 new_key = "快乐"
- new_key 的值为 5
- setdefault() 被调用,让我们假设 5 已经在“yours”的字典中(据我所知,因为字典是无序的,这不一定是这种情况,但让我们假设)并将返回 ["yours" ] (我的猜测是这里发生了一些稍微不同的事情,所以事实上“inverse.setdefault(5, [])”返回了[“yours”]并不是真的,就是这样)
- append() 被调用并且 ["yours"] --> ["yours", "happy"] - 这就是我们剩下的。
我知道在 4 结束时我错了,因为实际上我们的列表已分配给键“5”。我不明白发生这种情况的时间点 - 似乎我们刚刚回来,真的应该分配:
但是,如果我运行这样的代码,我会收到错误 - 'NoneType' object has no attribute 'append'
。
任何解释都值得赞赏 - 我想我一定错过了关于这两种方法如何交互的一些东西。
PS这是我的第一个问题,如果问题性质/结构不是“这里的事情是如何完成的”,我们深表歉意。让我知道如何改进,我会尽力做到这一点!
windows - 连接两个同名播放设备时如何设置默认音频设备
当连接两个具有相同名称的播放设备时,我正在尝试设置默认音频设备。
详细信息: 对于单个或不同名称的播放设备,我可以使用 nircmd.exe 设置默认值。但是在我的笔记本电脑上连接 USB 扬声器时。在播放设备中,它显示两个与“扬声器”同名的扬声器。在这种情况下,我无法按照我的要求设置默认播放设备。默认情况下,将第一个扬声器设置为设置默认值。
所以有人可以帮我解决这个问题。
python - 嵌套字典中的setdefault()?
尝试使用 setdefult() 将嵌套字典中的值存储在搁置文件中。有什么简单的方法可以做到这一点?以下代码似乎使值不可变,例如,最后一行无法将“价格”值更改为 25。
我希望让它与搁置一起运行,然后稍后添加 SQL,但现在学习它可能更容易。让我知道你的想法。谢谢。
python - python中带有setdefault的全局变量
我对在 python 中使用 if setdefault() 的全局变量的行为有点困惑:
请找到有关如何使用 setdefault 引用/解决此问题的示例代码,有人可以帮我澄清这里发生了什么吗?
解析变量的主文件:
为变量赋值的测试文件:
输出 :
我无法理解为什么从 main.py 调用时 list(my_list) 变量显示为空,而 my_dict 显示数据正常?
任何帮助表示赞赏。蒂亚!
#样本测试文件 2
输出:
有人可以对第二个测试文件有所了解吗,请耐心等待,尝试了解基础知识:)
蒂亚!
android - 如何在 Room Android 的外键中使用 set_default
我不明白如何set_default
在 onDelete 中使用外键。
在哪里为子行设置默认值?请告诉我,我能做什么?
python - 为什么在使用 Python dict.setdefault 时出现此错误?
我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串。我们可以使用 setdefault 得到这个吗?
当我使用上面的代码时,我得到错误 -