使用嵌套for循环列出项目

时间:2018-02-02 16:21:57

标签: python python-3.x

我是新手编码,这让我发疯。我试图比较列表中的项目以消除重复项,但它不起作用。 结果很好:

L = [1, 2, 3]
for i in L[:]:
    for j in L[:]:
        print(L.index(i), i, L.index(j), j)

但如果我将列表更改为:

    L = [1, 1, 3]
它不会工作。它跳过一些项目并打印其他一些项目两次。任何想法?

2 个答案:

答案 0 :(得分:2)

您可以将其更改为set,以确保项目的唯一性:

In [1]: my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

In [2]: my_new_list = list(set(my_list))

In [3]: my_new_list
Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

但请注意,set是无序数据结构,这意味着订单可能不同。

在你的情况下,你可以这样检查:

In [4]: my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

In [5]: my_new_list = []

In [6]: for element in my_list:
   ...:     if element not in my_new_list:
   ...:         my_new_list.append(element)
   ...:         

In [7]: my_new_list
Out[7]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

答案 1 :(得分:0)

删除列表中的重复项(注意如果元素的顺序对您不重要,请使用此项):

L = [1, 1, 3]
print(list(set(L)))

输出:

[1, 3]