gpt4 book ai didi

python - 使用 -= 时字典值未按预期更新

转载 作者:行者123 更新时间:2023-12-02 03:46:51 24 4
gpt4 key购买 nike

我有一本字典和一个单词:

check = {'a': 3, 'e': 1, 'p': 2, 'r': 1, 'u': 1, 't': 1}
word = 'rapturerererer'

我希望运行一个测试,看看 word 中的所有字母是否都在 check 中。因此,我需要对所有用过的字母进行连续计数,并检查末尾是否有任何负数。

我有代码,但它总是将值限制为 0 并且从不返回负值:

for letter in word:
if check.get(letter):
check[letter] -= 1
print(check)

{'a': 2, 'p': 1, 'r': 0, 'e': 0, 't': 0, 'u': 0}

我期待的是:

{'a': 2, 'p': 1, 'r': -5, 'e': -4, 't': 0, 'u': 0}

谁能解释一下为什么这些值停在 0 处?

最佳答案

if check.get(letter):
check[letter] -= 1

if check.get(letter) 不仅在 letter 缺失时失败;如果字典中的值为"falsy",它也会失败。 None 是假的,0 也是假的。一旦达到 0 ,测试就会失败,并且不再发生递减。

改用in

if letter in check:
check[letter] -= 1

关于python - 使用 -= 时字典值未按预期更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51771831/

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