這是實踐例子:Python列表減法
寫一個函數
(list1, list2)
,在兩個列表需要作爲參數,並返回一個列表,是去除list1
元素,可以在list2
發現的結果。
爲什麼此函數返回[1, 3, 4]
而不是[4]
正如我以爲會這樣?我認爲這與list1.remove()
有關。我想這是顯而易見的,但我看不到它。
它適用於這些例子:
subtractList (['a', 'b', 'c', 'd'], ['x', 'y', 'z']) =
['a', 'b', 'c', 'd']
subtractList([1,2,3,4,5], [2, 4]) =
[1, 3, 5]
,但未能在此:
subtractList(range(5), range(4))
而且我注意到它從列表中刪除僅偶數。
下面是代碼:
def subtractList(list1,list2):
list1 = list(list1)
list2 = list(list2)
for i in list1:
if i in list2:
list1.remove(i)
return list1
我已經解決了這個做法有:
def subtractList(list1,list2):
new_list = []
list1 = list(list1)
list2 = list(list2)
for i in list1:
if i not in list2:
new_list.append(i)
return new_list
請修復您的格式,尤其是你的壓痕。現在它很難幫助你。 – Ffisegydd
你在使用Python 3還是Python 2? – Ffisegydd
此外,由於您已經通過列表(範圍(x)也是一個列表),將它們再次變成列表('list1 = list(list1)')是不必要的 – thumbtackthief