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