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