我正在寻找一种更简洁的方法来进行以下类型的比较:
if x == y or y == z or x == z:
do something
虽然在这个小例子中这样做很好,但我希望一次对3个(如上所述)的24个变量进行比较。我很难找到一个更干净的方法来表达这些观点。有什么想法吗?你知道吗
编辑:为了让这个看起来更像我要清理的东西:
if(
#corner 1
cube[0] == cube[29] or
cube[0] == cube[42] or
cube[29] == cube[42] or
#corner 2
cube[2] == cube[9] or
cube[2] == cube[44] or
cube[9] == cube[44] or
#corner 3
...
#corner 8
...
):
doSomething
得益于Primusa的解决方案:
corner1 = [cube[0], cube[29], cube[42]]
corner2 = [cube[2], cube[9], cube[44]]
...
if(len(corner1) != len(set(corner1)) or
len(corner2) != len(set(corner2)) or
...)
dostuff
这是伪代码。。。这样怎么样:
然后使用:
您可以创建一个类来执行相同的操作。下面是一个例子
下面是一个简单的方法来检查一个巨大列表中的任意两个值是否相等(假设您的值是可哈希的):
set()是一个python数据结构,不能有重复项。因此,如果一套的长度!=列表的长度,则列表中必须有重复项,因此值相等。你知道吗
如果您的值是不可哈希的,那么您可以编写一个helper函数,以使代码变得更好:
相关问题 更多 >
编程相关推荐