如何从字符串/混合列表中删除重复项

时间:2014-05-02 09:20:35

标签: python

我试图打印第二个列表而不打印第二个重复项。我想我可以使用x.remove(list),但它不起作用。有什么建议吗?

x = [] #initiate empty string
    counter = {}

    while list != "DONE":
        list = input() #keep asking for input

        for i in x:
            if not i in counter:
                x.append(list)
            else:
                x.remove(list)

2 个答案:

答案 0 :(得分:0)

如果您不想在列表中使用重复项,则可以使用:

In [38]: l1 = [1,2,1,2,1,2]

In [39]: l2= list(set(l1))

In [40]: l2
Out[40]: [1, 2]

答案 1 :(得分:0)

我认为这是你想要实现的目标:

x = []
while True:
    data = input()
    if data.lower() == "done":
        break
    if data not in x:
        x.append(data)

请注意使用while Truebreak来避免两次input来电。

或者,使用set

x = set()
while True:
    data = input()
    if data.lower() == "done":
        break
    x.add(data)
x = list(x)

这将悄然忽略添加重复项的尝试。

如果您确实 希望允许用户再次输入x中的项目,则可以添加else并使用{{1} (对于列表)或remove(对于集合),例如:

discard