Python中'in'中的标识比较
在python中:Python中'in'中的标识比较,python,comparison,Python,Comparison,在python中: >>> 1 in [True, False] True 是否有一种方法可以在语句中实现一个,与Is中的身份比较,而不是= e、 g 尝试此功能,它的工作原理与您期望的完全相同: def is_func(var, list_): for each in list_: if var is each: return True else:
>>> 1 in [True, False]
True
是否有一种方法可以在语句中实现一个,与Is中的身份比较,而不是=
e、 g
尝试此功能,它的工作原理与您期望的完全相同:
def is_func(var, list_):
for each in list_:
if var is each:
return True
else:
continue
return False
在这里,我明确地使用了“continue”来可视化代码流,例如
新程序员。为了简单和方便,您可以删除代码中的“else”部分
更少的代码
这就是它的工作原理:
>>> is_func(True, [True, False])
True
>>>is_func(1, [True, False])
False
尝试此功能,它的工作原理与您期望的完全相同:
def is_func(var, list_):
for each in list_:
if var is each:
return True
else:
continue
return False
在这里,我明确地使用了“continue”来可视化代码流,例如
新程序员。为了简单和方便,您可以删除代码中的“else”部分
更少的代码
这就是它的工作原理:
>>> is_func(True, [True, False])
True
>>>is_func(1, [True, False])
False
好像python还没有足够的伪代码开始,你想把它带到下一步吗?
any(1是{True,False}中的值)
vs.any(True是{True,False}中的值)
对于这个例子isinstance(1,bool)
可能就足够了。我同意Matts的第二个选择。处理多个类型的最佳方法是检查类型以确保它是您想要的类型。例如,isinstance(2,int)和[2,4,6]中的2
,首先要确保类型符合预期,然后进行包含检查,@Matthias我会将这两个选项放在答案中。也许有更好的方法,但现在这两种方法结合起来就可以给出一个可靠的答案。好像python还没有足够的psuedo代码开始,你想把它带到下一步吗?any(1是{True,False}中的值)
vs.any(True是{True,False}中的值)
对于这个例子isinstance(1,bool)
可能就足够了。我同意马特斯的第二种选择。处理多个类型的最佳方法是检查类型以确保它是您想要的类型。例如,isinstance(2,int)和[2,4,6]中的2
,首先要确保类型符合预期,然后进行包含检查,@Matthias我会将这两个选项放在答案中。也许有更好的方法,但目前这两种方法的结合是一个可靠的答案。这个答案不适用于is_func(1[True,1,False])
。returnfalse
语句只应在for循环耗尽时出现@马蒂亚斯的评论也更加简洁。谢谢你的指点。我会立即做出改变。继续下去是不必要的。使用any
语句可以更好地解决这一问题,因为它更紧凑,还可以执行必要的短路。我知道这一点。但是更明确的是,它使新手更容易理解。在for循环结束时显式使用continue
,这是错误的代码。这完全没有必要,只会增加复杂性。如果有人需要在for循环的末尾添加一些内容,那么它将提前返回,除非他们记得删除无关的continue
。这只是要求出现更多错误。此答案不适用于is_func(1[True,1,False])
。returnfalse
语句只应在for循环耗尽时出现@马蒂亚斯的评论也更加简洁。谢谢你的指点。我会立即做出改变。继续下去是不必要的。使用any
语句可以更好地解决这一问题,因为它更紧凑,还可以执行必要的短路。我知道这一点。但是更明确的是,它使新手更容易理解。在for循环结束时显式使用continue
,这是错误的代码。这完全没有必要,只会增加复杂性。如果有人需要在for循环的末尾添加一些内容,那么它将提前返回,除非他们记得删除无关的continue
。这只是要求出现更多的bug。