python - 在 python 字典中获取和设置值的最佳习惯用法

标签 python

我使用 dict 作为短期缓存。我想从字典中获取一个值,如果字典中没有那个键,请设置它,例如:

val = cache.get('the-key', calculate_value('the-key'))
cache['the-key'] = val

如果 'the-key' 已经在 cache 中,则第二行不是必需的。有没有更好、更短、更具表现力的成语?

最佳答案

可读性很重要!

if 'the-key' not in cache:
    cache['the-key'] = calculate_value('the-key')
val = cache['the-key']

如果你真的喜欢单线:

val = cache['the-key'] if 'the-key' in cache else cache.setdefault('the-key', calculate_value('the-key'))

另一种选择是在缓存类中定义__missing__:

class Cache(dict):
    def __missing__(self, key):
        return self.setdefault(key, calculate_value(key))

关于python - 在 python 字典中获取和设置值的最佳习惯用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11152559/

相关文章:

python - 在 Django 中如何安排每日报告以电子邮件形式发送

python - Pyinstaller 警告 :lib not found: api-ms-win-core-path-l1-1-0. dll 依赖 c :\users\ymzym\appdata\local\programs\python\python39-32\python39. dll

python - 月份开始日期和结束日期

Python OptParse

python - 我在运行 'sudo apt autoremove python' 时删除了数据库

python - 有没有办法在 python 中做 HTTP PUT

c++ - 正则表达式:在开头以外的任何地方接受空格

python - 有没有办法连续读取 CSV 文件并使用 Flask 将其显示在 HTML 上?

python - 为什么我的远程 MongoDB 连接需要对每个查询进行身份验证?

python - 将带有字典的 Python List 转换为一个字典的最快方法