簡體   English   中英

Python列表幫助,列表中沒有重復項

[英]Python Lists help, no duplicates in list

CheckList = ['hello', 'hello1', 'hello2', 'hello3', 'hello4', 'hello5', 'hello', 'hello1']
AlreadyChecked = ['hello', 'hello1', 'hello2', 'hello3', 'hello4']
NextCheck = ['hello', 'hello1', 'hello2']


while(CheckList):
    ToCheck = CheckList.pop()
    while(ToCheck in AlreadyChecked and CheckList):
        ToCheck = CheckList.pop()
    AlreadyChecked.append(ToCheck)
    while(ToCheck in NextCheck and CheckList):
        ToCheck = CheckList.pop()
    NextCheck.insert(0, ToCheck)

print(NextCheck)

此代碼正在打印...

['hello', 'hello5', 'hello', 'hello1', 'hello2']

我需要發生的事情:

  • 一旦打印,NextCheck應該沒有重復項。
  • NextCheck應該在CheckList中包含所有內容,當然沒有重復
  • 完成while(CheckList)執行后,NextCheck中的所有內容都應位於AlreadyChecked中

不幸的是,如打印語句所示,我在NextCheck中得到重復。

有什么幫助嗎? :/

將您的列表轉換為set()

lst = ["A", "B", "C", "C", "B"]
print(list(set(lst)))
>>> ["A", "B", "C"]

要更改列表,只需

lst = set(lst)

您錯過了一些縮進。 嘗試粘貼此內容,看看問題是否已解決。

CheckList = ['hello', 'hello1', 'hello2', 'hello3', 'hello4', 'hello5', 'hello', 'hello1']
AlreadyChecked = ['hello', 'hello1', 'hello2', 'hello3', 'hello4']
NextCheck = ['hello', 'hello1', 'hello2']


while(CheckList):
    ToCheck = CheckList.pop()
while(ToCheck in AlreadyChecked and CheckList):
    ToCheck = CheckList.pop()
AlreadyChecked.append(ToCheck)
while(ToCheck in NextCheck and CheckList):
    ToCheck = CheckList.pop()
    NextCheck.insert(0, ToCheck)
print(NextCheck)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM