繁体   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