Python 打印时检查重复项

Python 打印时检查重复项,python,Python,我用随机数和基数生成序列。见下面的例子 import random charList = ["A", "B", "C", "D", "C", "E", "F", "G", "H", "I", "J", "K", "L", "M", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5" "6", "7", "8", "9"] def Z150(charList): retu

我用随机数和基数生成序列。见下面的例子

import random

charList = ["A", "B", "C", "D", "C", "E", "F", "G", "H", "I", "J", "K", "L", "M",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5"
"6", "7", "8", "9"]

def Z150(charList):
    return "1841GG001Z" + random.choice(charList) + "8" + " -> Z150 Speakerset"
for i in range(100):
    print(Z150(charList))
现在,很可能会有重复的,我如何找到重复的并删除它们


我已经看到了一些方法,但是没有任何方法可以检查打印输出,然后删除重复的内容(如果有意义的话)

使用基本python的一种方法是列出您已经生成的内容,并跳过它:

printed = set()
for i in range(100):
    z150 = Z150(charList)
    if not z150 in printed:
        printed.add(z150)
        print(z150)
或者,您可以使用一行纸,首先获得一套,然后再打印:

snums = set(Z150(charList) for _ in range(100))
for s in snums: 
    print(s)

使用字符串模块和shuffle

import random
import string

charList=list(string.ascii_uppercase+string.digits[1:])


def Z150(i):
    return  "1841GG001Z" + i + "8" + " -> Z150 Speakerset"
random.shuffle(charList)        
for i in charList[:20]:
    print(Z150(i))

将结果添加到集合中。是否需要维护顺序…尝试选择正确的重复项或不需要检查,因为集合元素总是唯一的。只需在第二个循环中进行打印。您确实需要检查,因为假设打印是此例程的主要目标,而不是输出到公平的数据结构,您不希望重复打印。编辑以相应地呈现另一种解决方案