如果键不在范围内,如何删除字典中的值?

时间:2019-12-11 17:12:44

标签: python dictionary

我需要做的是,如果键不在输入范围内,请从字典中删除值。这是我当前的代码。


while True:
  player = input("Input player:")
  if player == '':
    break
  score = int(input("Input score:"))

  playerDict[player] = score

minimum = int(input("Input a minimum score:"))
maximum = int(input("Input a maximum score:"))```

如果键不在最小到最大范围内,那么我要删除它们。我尝试过的所有方法都不起作用,因为我不知道输入的值是什么。

1 个答案:

答案 0 :(得分:2)

您可以使用dictionary comprehension

new_dict = {k: v for k, v in your_dictionary.items() if minimum < k < maximum}

或者,如果您想要更清晰的内容

new_dict = {}
for k, v in your_dictionary.items():
    if minimum < k < maximum: 
        new_dict[k] = v 

请注意,由于operator chaining,Python中允许使用minimum < k < maximum(而不是minimum < k and k < maximum)。


或者,用filterdict

new_dict = dict(filter(lambda kv: minimum < kv[0] < maximum, your_dictionary.items()))

(我认为这是最糟糕的一个)