我的教授給了我一個練習,我寫了一個函數,它返回一個沒有重複到舊列表的列表。 這是代碼,但我不知道怎麼寫的方法,而無需使用.remove()
:我如何寫一個沒有重複的列表,只有if和boolean
def distinct(lst):
lstnew = []
c = range(len(lst))
for i in range(len(lst)):
if i in range(len(lst)) != c:
lstnew += [i]
c += 1
return lstnew
print distinct([1,3,1,2,6])
print distinct([['a','ab','a','ab']])
我忘了寫一件重要的事情,我必須在輸出列表中保持秩序。
[更新] 後,我讀的潔Srivastav我這個代碼的答案:
def distinct(lst):
lstnew = []
for element in lst:
if element not in lstnew:
lstnew = lstnew + [element]
return lstnew
和它的作品完美
您現在沒有使用'remove'。 –
你想爲這兩個例子輸出什麼,只是'[1,3,2,6]'和'['a','ab']' - 輸出列表是否需要保持輸入列表? – jedwards
性能是否重要?許多實現(通過O(n)列表遍歷來確定是否存在某些實現的實現)將非常緩慢,因此您不希望在現實生活中使用它們。 –