首页 > 解决方案 > 如何使用给定的函数来传递许多字符串

问题描述

我有我的函数 randStr ,它会吐出一个带有 N 个字符的随机字符串。

def randStr(chars = string.ascii_uppercase + string.digits, N=4):
    return ''.join(random.choice(chars) for _ in range(N))

如何使它返回 1000 个这些随机且唯一的小字符串?

标签: python

解决方案


(编辑:添加唯一性检查)

您可以使用 awhile-loop进行迭代,直到获得 1000 个唯一单词。请注意,输入字符串必须至少为 8 个字符长。使用排列计算器进行检查,7P4=840 和 8P4=1680,9P4 起大于此。

import string
import random

def randStr(chars = string.ascii_uppercase + string.digits, N=4):
    return ''.join(random.choice(chars) for _ in range(N))

unique_words = []
while len(unique_words) < 1000:
    result = randStr('abcdefgh')
    if result not in unique_words:
        unique_words.append(result)
        print(result, end=', ')
print(len(unique_words))

输出:

cfae, gbca, fgfe, bdhg, decd, gcha, ddgc, babd, bggb, eghe, eeca, ebch, fbec, bgbe, gbbc, dgda, efec, hccd, bgfh, gdbf, ecac, edhd, cfdg, eacf, dgaa, heeb, 
...
egbb, cbed, eefg, gdec, dgcg, cgag, fadc, effe, dahg, fhdb, 1000

推荐阅读