0
有人可以解释为什么以下是错误的?Tuple内Tuple返回False
x = (1, 2, (3, 'John', 4), 'Hi')
print 3 in x
是因为3在另一个元组中吗?但是,如果是这样的话,是不是仍然在技术上数字3?
有人可以解释为什么以下是错误的?Tuple内Tuple返回False
x = (1, 2, (3, 'John', 4), 'Hi')
print 3 in x
是因为3在另一个元组中吗?但是,如果是这样的话,是不是仍然在技术上数字3?
in
运算符不会通过子元组递归搜索。从概念上讲,in
只是遍历元组中的每个项目i
,并检查是否x == i
。如果它检查x in i
以及x == i
那么它会找到3,但它不会那样做。
x
包含4个项目:整数1
,整数2
,元组(3, 'John', 4)
,字符串'Hi'
,所以整数3
不在x
。
但是3 in x[2]
是True
。
这就是它的设计。没有'3'不是'in x','(3,'John',4)'是'在x中。 – CoryKramer
尝试'print(3,'John',4)in x'。 '(3,'John',4)'实际上在'x'中:) –
所以:是的,这是因为3在另一个元组中。 – user2864740