ich ein einfaches Programm erstellt haben, die Elemente aus einer Liste aus einer anderen Liste mit in
Verfahren mindestens zwei Mal entfernt:entfernen Elemente aus einer Liste aus einer anderen Liste mit „während“
def remove(l_list,s_list):
"""Removes items of s_list from l_list and returns the rest"""
res=[]
for item in l_list:
if item not in s_list:
res.append(item)
return res
ich ersetzen wollen if not in s_list
Operation durch die Schleife "während" und vergleichen Sie die Komplexität dieser Funktionen.
Also habe ich den folgenden Code aus (funktioniert nicht):
def remove2(l_list,s_list):
res=[]
for item in l_list:
found=False
i=0
while len(s_list)>i and not found:
if item==s_list[i]:
found=True
if not found:
res.append(item)
i+=1
return res
Beispiele:
>>> remove2([1,2,3],[1,2])
[3]
>>> remove2([1,2,3],[1])
[2,3]
Was mache ich falsch? Was ist los mit meiner Logik?
Sollte es in Ihrer ersten Variante nicht "ob Artikel nicht in s_list" sein? –
@SimonFrome ja, danke –