我使用下面的简单代码生成一个长度为10的随机字符串
from string import ascii_letters, digits
''.join(choice(ascii_letters + digits) for i in range(10))
问题是有时候字符串的第一个字符是数字,我不希望这样,我希望第一个字符总是字母,后面的字符我不关心。
我可以通过连接两个字符串(一个长度为1,另一个长度为9)来解决这个问题,并且仅基于ascii_letters生成第一个字符串,但是,我想知道是否有更简单的方法。
4条答案
按热度按时间xmd2e60i1#
您也可以使用
random.choices()
:以选择
k
元素。不需要range
或for
。wb1gzix02#
我希望这对你的解决方案有效。对于索引0,它应该总是从字母表中选择
2w2cym1i3#
z9zf31ra4#
如果你正在寻找在security上下文中可用的随机性,你可能至少要考虑使用secrets模块来做选择。根据用例,在不适当的上下文中使用给定答案的结果可能会与预期结果vastlydiffer不同。
下面可以完成非安全关键上下文的工作。