Как получить все значения по ключам, которые находятся в пределах диапазона?

#python-2.7

#python #python-2.7 #словарь

Вопрос:

У меня есть словарь:

 dict = {8.12: 4, 6.93: 2, 6.78: 2, 7.04: 2, 7.21: 2, 8.05: 4, 7.48: 2, 
        6.52: 0, 6.95: 2, 7.28: 2, 7.56: 2, 6.67: 0, 6.33: 2, 6.37: 1, 
        7.15: 1, 8.16: 5, 7.84: 3, 7.13: 2, 6.24: 0, 7.11: 3}
  

Я хочу получить все значения по ключу, который находится в диапазоне — 1. Например, как я могу получить все те значения, значение ключа которых находится между 7 и 9.

 x = 8
print dict[range(x-1,x 1)]
  

Ответ №1:

что-то вроде:

 for key in dict.keys():
    if key >= x-1 and key <= x 1:
        print dict[key]

  

Ответ №2:

Используя понимание, по-питоновски :

 x=8
print([dict[key] for key in dict if x 1 >= key >= x-1])
  

Ответ №3:

 print [dict[i] for i in dict.keys() if i > x-2 and i < x 2]
  

введите описание изображения здесь

Комментарии:

1. Это сработает, только если ключи являются целыми числами, используйте вместо >= x-1 и <=x 1

2. @Nicolas не могли бы вы просмотреть скриншот.

3. Я не понимаю, что я должен здесь просмотреть, код работает, но вы не использовали значение x, которое было частью вопроса, и вы не использовали поле -1, указанное в вопросе. Мой комментарий был о том, что использование > x-2 отличается от использования > = x-1, если существуют значения, которые больше, чем x-2, но меньше, чем x-1 -> если в качестве ключа используются нецелые (т. Е. плавающие) значения.