Par*_*ani 0 python conditional-statements
我有一个范围列表和另一个数字列表。如果数字超出所有这些范围,我必须输出该数字。
ranges=['35-796', '811-953', '25-224']
numbers=[12, 30, 345, 800]
#I am looking for an efficient way of doing this
for number in numbers:
if number not in range(35,797) and number not in range(811,954) and \
number not in range(25,225):
return number
Run Code Online (Sandbox Code Playgroud)
在上面的列表中,输出应为 12 和 800。
我可以通过一些处理将这些范围转换为任何形式,例如范围对象,或者我可以将最小值和最大值放入类似min<number<max.
我有大约 42 个范围和大约 5000 个数字需要检查。我正在寻找一种“Pythonic”且最有效的方法来做到这一点。
更改ranges为范围列表,然后使用any().
ranges=[range(35, 797), range(811, 954), range(25, 225)]
for number in numbers:
if not any(number in r for r in ranges):
return number
Run Code Online (Sandbox Code Playgroud)