如何生成带指定文本的随机数字字符串,实现test1,test3的输出格式
问题原因
str.join(iterable)的作用是将可迭代对象iterable中的每个元素,用调用join方法的字符串作为分隔符拼接。你传入的random.choices(string.digits, k=2)会得到长度为2的数字字符列表,比如['1','3'],执行'test'.join(['1','3'])自然会输出1test3,和预期结果不符。
调整方案
你需要先给每个生成的随机数字拼接前缀test,再用逗号把所有拼接好的字符串连接即可,调整后的代码如下:
import random import string randstring = ','.join(f'test{num}' for num in random.choices(string.digits, k=2))
如果需要生成更多个test+数字的片段,直接修改k参数的数值即可,比如k=3就会输出类似test2,test5,test7的结果。
如果运行环境为Python 3.6以下版本(不支持f-string语法),可以替换为format写法:
randstring = ','.join('test{}'.format(num) for num in random.choices(string.digits, k=2))
内容的提问来源于stack exchange,提问作者user17544024
相关产品推荐
相关产品推荐

