Python:包含字符串和数字的dict问题

时间:2014-04-04 00:48:04

标签: python dictionary

我有一个名为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)

当我这样做时,我收到此错误:

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

如何才能打印出姓名和号码而不是错误?

1 个答案:

答案 0 :(得分:2)

替换

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

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