Python: проблемы с dict, содержащие строки и числа

У меня есть dict под названием name_dict со значениями, которые являются строками и числами внутри него. Вот.

name_dict={'first': 324/1080*100,'second':484/1823*100,'third':931/2765*100}

Я предполагаю, что пользователь вводит диапазон, и если один из чисел в name_dict не находится в диапазоне, то он должен напечатать это число вместе со значением, связанным с ним. это моя вся программа:

print('Enter the tolerance range for valid values')
tr=input('ex. If your range is 20-40%, please type as 20 40')
tr_split=tr.split()
tr_int= [int(i) for i in tr_split]
if tr_int[0]<0:
 print('Error. Lower tolerance cannot be less than 0.')
elif tr_int[1]>100:
 print('Error. Higher tolerance cannot be greater than 100.')
elif tr_int[0]>tr_int[1]:
 print('Error. Lower tolerance cannot be greater than higher tolerance.')
name_dict={'first': 324/1080*100,'second':484/1823*100,'third':931/2765*100}
for i in name_dict:
 if i<tr_int[0] or="" i="">tr_int[1]:
 print(name_dict)
</tr_int[0]>

Когда я это делаю, я получаю эту ошибку:

TypeError: unorderable types: str() < int()

Как я могу заставить его распечатать имя и номер вместо ошибки?

1 ответ

замещать

for i in name_dict:
 if i<tr_int[0] or="" i="">tr_int[1]:
 print(name_dict)
</tr_int[0]>

с

for key,value in name_dict.items():
 if not (tr_int[0] < value < tr_int[1]):
 print(key, value)

licensed under cc by-sa 3.0 with attribution.