題主妳好,
寫在前面: 我先給題主舉個例子, 我先定義壹個字典:
dict03 = {1:3, 5:7}
可以看出上面這個字典有兩個元素, 此時我們使用dict03.values()得到的結果為:
dict_values([3,7])
從上面這個結果可以看出, 字典的values方法,會將字典中的所有鍵值對的值生成壹個列表, 作為dict_values()參數,並返回.
-----
上面沒有講到重點,只是作了壹個引, 下面看到底問題出在哪了.
題主定義的dict03={0:[1,3,5,7]}, 這個字典, 其實只有壹個鍵值對, 鍵是整數0,值是列表[1,3,5,7], 所以此時dict03.value()返回的值為? dict_values([[1,3,5,7]]), 重點就在這裏, 註意,返回的是:
dict_values( [[ 1,3,5,7 ]] )
而不是
dict_values( [ 1,3,5,7 ] )
拋開前面這個dict_values, 也就是返回的是:
[[1,3,5,7]] 而不是 [1,3,5,7]
前者是含有壹個元素的列表, 只不過這個元素本身也是壹個列表;
後者是含有4個元素的列表, 每個元素都是整型數字;
而 x in y 這種形式中, 是看x是否存在於y中,
拿題主的代碼來說, 其實 i in dict03.values() 翻譯過來是:
5 in [[1,3,5,7]], 因為[[1,3,5,7]]這個列表就壹個元素,為[1,3,5,7],所以5並不在[[1,3,5,7]]中,
如果翻譯過來是:
5 in [1,3,5,7],那麽我們得到的結果肯定是True, 因為[1,3,5,7]中有4個元素,而5恰在其中.
所以解決方法也就有了, 想辦法去掉[[1,3,5,7]]最外層的[].
代碼及測試截圖如下:
上圖中, 第壹個紅框是將dict_values([[1,3,5,7]])轉換成 [[1,3,5,7]];
第二個紅框是將[[1,3,5,7]]轉換成[1,3,5,7];
此時最後壹句print(5 in [1,3,5,7]) 也就得到了我們想要的結果True了.
-----
希望可以幫到題主, 歡迎追問.