Python 如何修改范围函数中边界值的包含/排除行为?
第1部分: 我有一本字典:Python 如何修改范围函数中边界值的包含/排除行为?,python,pandas,dictionary,tuples,range,Python,Pandas,Dictionary,Tuples,Range,第1部分: 我有一本字典: mydict = {'K': {'VAL1': 'apple', 'VAL2': (60, 80)}, 'L': {'VAL1': 'mango', 'VAL2': (90, 100)}, 'M': {'VAL1': 'pears', 'VAL2': (120, 150)}} rto = tuple(range(60,80)) # works rto = tuple(range(mydict['K']['VAL2']))
mydict = {'K': {'VAL1': 'apple', 'VAL2': (60, 80)},
'L': {'VAL1': 'mango', 'VAL2': (90, 100)},
'M': {'VAL1': 'pears', 'VAL2': (120, 150)}}
rto = tuple(range(60,80)) # works
rto = tuple(range(mydict['K']['VAL2']))
TypeError: range() integer end argument expected, got list.
我怎样才能做到这一点,我想反复阅读字典
第二部分:
假设上述方法可行,我想检查一个值是否在以下范围内:
my_value = 70
rto = tuple(range(60,80))
if my_value in rto :
print("Value is in range")
else:
print("Value not in range")
# Output:
# 70- Value is in range
# 20- Value not in range
# 60- Value is in range
# 80- Value not in range
# (This tells me that the range function includes 60 and excludes 80 from the
# test)
如何操作测试的边界条件?意思是:包括60和80。
排除60或80。
包括任何一个 我认为您不需要创建一个范围,因为您可以在值之间运行检查以获得解决方案 下面的代码使用小于和大于运算符查找元组之间是否存在my_值。如果这是你的想法,请告诉我
for i in [j['VAL2'] for i,j in mydict.items()]:
if i[0] <= my_value <= i[-1]:
print(f'{i},{my_value} value is in range')
else:
print(f'{i},{my_value} value is not in range')
[j['VAL2']中的i,mydict.items()中的j的
如果i[0]您可以为dict执行此操作。请参阅
是的,这工作得非常好,并且是更简洁的代码。有没有办法操纵边界条件呢?例如,当前对于键“K”,80显示不在(60,80)范围内。我想显示(60,80)范围内的60和80…更改代码以包含右边界的小于或等于。因此,它应该同时拾取60和80。让我知道它是否有效
rto = tuple(range(*mydict['K']['VAL2']))