"""python3.9"""
print(any([4]) in [1, 2, 3]) # True!
print(any([1, 2, 3]) in [4, 5]) # False
bool是int的子类,int(True)=1, int(False)=0
any([4]), any([1,2,3])都是True,使用in去判断True在不在list中时,由于list中是int,
所以等价于在判断
print(1 in [1, 2, 3])
print(1 in [4, 5])
所以一个True一个False
any会把列表中的所有元素转换成布尔值,只要有一个为True,则返回True,而 in [1,2,3] 会把any返回的布尔值转换为列表包含的类型的数据,再判断是否存在于列表内。
根据规则,只有0转换为布尔值为False,其他整数都是True,所以 any([4]) 和 any([1,2,3]) 的返回结果都是True
但是True转换成整数只能变成1,所以第一行里整数1存在列表[1,2,3]里,结果返回True,而第二行里[4,5]不包含整数1,所以返回False。
any()函数:list中任何元素为真,则any()方法返回True。如果没有,any()返回False。
https://blog.csdn.net/xiabenshu/article/details/88754545
any([4])和 any([1, 2, 3])返回的都是True
相当于执行的是:True in [1, 2, 3]和True in [4, 5]
在python来说1与True,0与False是完全相等的东西
https://blog.csdn.net/studyvcmfc/article/details/112646838