我有一个排序列表,一个范围包含多个列表:
>>> n= [10, 20, 30, 40]
>>> m= [[1, 20], [21, 30]]
Run Code Online (Sandbox Code Playgroud)
我想做的是检查n列表中的所有元素是否都在现有范围内m。例如,根据以上示例,40不在任何范围内。
我试图在下面的帖子中扩展问题的答案,但似乎不起作用。
is_there = set(tuple(x) for x in [n]).issubset(tuple(x) for x in m)
Run Code Online (Sandbox Code Playgroud)
You should go through each element in n and check if it's in the range of each list of m. Assuming you are only working with ints:
[any(x in range(r[0], r[1]) for r in m) for x in n]
Run Code Online (Sandbox Code Playgroud)
If you want to include the end of your range, just add 1:
[any(x in range(r[0], r[1]+1) for r in m) for x in n]
Run Code Online (Sandbox Code Playgroud)