繁体   English   中英

python-不打印已经打印的结果

[英]python - dont print results that have already been printed

我有一个python脚本,可以打印出完美立方体的数字列表并加到1978。这是输出:

    `[1, 27, 729, 512, 8, 512, 1, 8]
     [1, 27, 729, 512, 8, 512, 8, 1]
     [1, 27, 729, 512, 512, 1, 8, 8]
     [1, 27, 729, 512, 512, 8, 1, 8]
     [1, 27, 729, 512, 512, 8, 8, 1]
     [1, 64, 8, 64, 125, 512, 512, 512]
     [1, 64, 8, 64, 512, 125, 512, 512]
     [1, 64, 8, 64, 512, 512, 125, 512]
     [1, 64, 8, 64, 512, 512, 512, 125]
     [1, 64, 8, 125, 64, 512, 512, 512]`

我只想要一次结果,而不是重复一次,因为我不在乎数字的顺序,因此从该样本中,我只希望2个答案而不是10个答案。有没有办法做到这一点?

编辑:同样,结果要花一天左右的时间写出来,因为有很多东西,所以我需要可以主动过滤的东西,所以速度更快

您可以对结果进行排序,将其转换为元组,然后将其添加到集合中以在打印之前删除重复项。 像这样:

cube_lists = [ [1, 27, 729, 512, 8, 512, 1, 8],
     [1, 27, 729, 512, 8, 512, 8, 1],
     [1, 27, 729, 512, 512, 1, 8, 8],
     [1, 27, 729, 512, 512, 8, 1, 8],
     [1, 27, 729, 512, 512, 8, 8, 1],
     [1, 64, 8, 64, 125, 512, 512, 512],
     [1, 64, 8, 64, 512, 125, 512, 512],
     [1, 64, 8, 64, 512, 512, 125, 512],
     [1, 64, 8, 64, 512, 512, 512, 125],
     [1, 64, 8, 125, 64, 512, 512, 512]
    ]

result = set([tuple(sorted(r)) for r in cube_lists])
print([list(r) for r in result])

打印:

[[1, 1, 8, 8, 27, 512, 512, 729], [1, 8, 64, 64, 125, 512, 512, 512]]

一种方法是先添加到大列表,然后将列表转换为集合,因为您不必关心订单,也不需要重复。 完成后,您可以打印出列表。

list_with_duplicates = [1, 27, 729, 512, 8, 512, 1, 8, 1, 27, 729, 512, 8, 512, 8, 1, 1, 27, 729, 512, 512, 1, 8, 8, 1, 27, 729, 512, 512, 8, 1, 8, 1, 27, 729, 512, 512, 8, 8, 1, 1, 64, 8, 64, 125, 512, 512, 512, 1, 64, 8, 64, 512, 125, 512, 512, 1, 64, 8, 64, 512, 512, 125, 512, 1, 64, 8, 64, 512, 512, 512, 125, 1, 64, 8, 125, 64, 512, 512, 512]
list_without_duplicates = set(list_with_duplicates)
print(list_without_duplicates) # Will print {512, 1, 64, 8, 729, 27, 125}` 

如果需要继续向集合中添加内容,可以使用.add()函数到集合中。

list_without_duplicates.add(1) 
print(list_without_duplicates) #Will print (same set) {512, 1, 64, 8, 729, 27, 125}
list_without_duplicates.add(2) 
print(list_without_duplicates) #Will print (new set) {512, 1, 64, 2, 8, 729, 27, 125}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM