Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查元组是否在范围内_Python_Python 3.x_Comparison Operators - Fatal编程技术网

Python 检查元组是否在范围内

Python 检查元组是否在范围内,python,python-3.x,comparison-operators,Python,Python 3.x,Comparison Operators,在我的关卡编辑程序中,我有以下代码,用于删除移出可玩区域的游戏块: x, y = theobj.pos if x not in range(0,79): level.remove_obj(theobj) if y not in range(0,29): level.remove_obj(theobj) 有没有什么有效的方法可以将其简化为一个if语句?我曾考虑使用列表理解生成所有有效位置元组的列表,但这似乎有点臃肿。您可以使用: if not (0 <= x <= 7

在我的关卡编辑程序中,我有以下代码,用于删除移出可玩区域的游戏块:

x, y = theobj.pos
if x not in range(0,79):
    level.remove_obj(theobj)
if y not in range(0,29):
    level.remove_obj(theobj)
有没有什么有效的方法可以将其简化为一个if语句?我曾考虑使用列表理解生成所有有效位置元组的列表,但这似乎有点臃肿。

您可以使用:

if not (0 <= x <= 78 and 0 <= y <= 28):
    level.remove_obj(theobj)
您可以使用:

if not (0 <= x <= 78 and 0 <= y <= 28):
    level.remove_obj(theobj)
您可以使用:

if not (0 <= x <= 78 and 0 <= y <= 28):
    level.remove_obj(theobj)
您可以使用:

if not (0 <= x <= 78 and 0 <= y <= 28):
    level.remove_obj(theobj)

那就更好了——尽管我仍然需要解包。@Schilcote:你仍然需要解包,或者内联<代码>如果没有(0@Dabrion:使用lambda how?封装范围检查?这仍然是定义lambda的额外一行。不清楚他是想对其进行编码还是想要更有效的方法。过滤集合的最佳方法是使用itertools或列表理解。在这两种情况下,lambda都很方便。lambda how?像这样:
[obj代表col if中的obj(lambda x,y:0)这更好——尽管我仍然需要解压元组。@Schilcote:您仍然需要解压,或者内联。
如果不是(0@Dabrion:使用lambda how?封装范围检查?这仍然是定义lambda的额外一行。不清楚他是想对其进行编码还是想采用更有效的方法。筛选集合的最佳方法是使用itertools或列表理解。在这两种情况下,lambda都很方便。lambda how?比如:
[obj for obj in col if(lambda x,y:0这更好——尽管我仍然需要解压元组。@Schilcote:您仍然需要解压或内联。
如果不解压(0@Dabrion:使用lambda how?封装范围检查?这仍然是定义lambda的额外一行。不清楚他是想对其进行编码还是想采用更有效的方法。筛选集合的最佳方法是使用itertools或列表理解。在这两种情况下,lambda都很方便。lambda how?比如:
[obj for obj in col if(lambda x,y:0这更好——尽管我仍然需要解压元组。@Schilcote:您仍然需要解压或内联。
如果不解压(0@Dabrion:使用lambda how?封装范围检查?这仍然是定义lambda的额外一行。不清楚他是想对其进行编码还是想采用更有效的方法。筛选集合的最佳方法是使用itertools或列表理解。在这两种情况下,lambda都很方便。lambda how?比如:
[obj for obj in col if(λx,y:0