gpt4 book ai didi

python - 如何在不更新字典(Python)的情况下检查 defaultdict 中的键?

转载 作者:太空狗 更新时间:2023-10-29 17:02:37 24 4
gpt4 key购买 nike

在使用 Python 字典时,我通常使用以下习惯用法:

try:
val = dct[key]
except KeyError:
print key, " is not valid"

因为对于大型词典,声明

if key in dct:
# do something

不是很有效(所以我记得读过,但我在实践中也注意到了)

今天我在使用 defaultdict,有那么一刻我忘记了 defaultdict 永远不会给你一个 KeyError 而是会更新原始字典。

如何在不更新 defaultdict 的情况下执行查找?我确实需要打印一条错误消息,以便用户可以重新输入 key 。

谢谢!

更新: 一些发帖者认为我认为 if key in dct: 很慢是错误的。我回去检查了我读过的那本书更好用 try: except:。这是 2002 年的 Python Cookbook,Alex Martelli 的食谱 1.4,也可以在这里在线找到:Add an entry to dictionary .旧的内存是如此不可靠!食谱没有提到“更慢”,它甚至没有使用 inhas_key。它只是说 try: except: 更像 Pythonic(至少是食谱的书本版本)。感谢您的更正和答复。

最佳答案

How can I perform a lookup without updating the defaultdict?

使用 key in dct,即显式。

如果这对您来说真的太贵了(衡量一下,您就会确定),有针对特定情况的解决方法。例如,如果您的默认值为 'ham',并且在某些情况下您不想将 (key, 'ham') 存储在 defaultdict 当找不到 key 时,你可以这样做

dct.get(key, 'ham')  # will return dct[key] or 'ham' but never stores anything

关于python - 如何在不更新字典(Python)的情况下检查 defaultdict 中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com