一開始理解成L和S都有的數(shù)字,就從L中刪除,把剩下的數(shù)字傳給S,即L→L(2,4,6,8,10, S={1,2,3,4,5,6,7,8,9,10,11},就寫了下面的代碼,為什么用debug調(diào)試 ,num的數(shù)值只經(jīng)過1,3,5,7,9,沒有2,4,6,8?
L?=?[1,?2,?3,?4,?5,?6,?7,?8,?9,?10] S?=?set([1,?3,?5,?7,?9,?11]) for?num?in?L: ????if?num?in?S: ????????L.remove(num) ????else: ????????S.add(num) print(L)????#?L=[2,?4,?6,?8,?10] print(S)????#?S?={1,?3,?5,?7,?9,?11}
2020-10-14
那答案中的remove為什么沒有向前移動
2020-10-14
對于python中的remove()函數(shù),官方文檔的解釋是:Remove first occurrence of value.大意也就是移除列表中等于指定值的第一個匹配的元素。
常見用法:?
a = [1,2,3,4]
,a.remove(1)
,然后a就是[2,3,4]
;對于a = [1,1,1,2]
,其結(jié)果也是[1,1,2]
,這是最基本的用法。但是對于下面這個:
或者說
2020-10-09
問題說的有點亂,我重新梳理了下: 如果將答案里面的if i in S:S.remove(i),改成 if i in S: L.remove(i),得到如下代碼: