方法1:random 模块的 sample 取样法
str = "abcdefghijklmn"
random.sample(str, 3) # 一次取3个元素,返回一个指定元素数量的列表
# 结果:每次都是3个不同元素
['i', 'g', 'h'] # 第一次执行
['j', 'd', 'c'] # 第二次执行
['f', 'j', 'n'] # 第三次执行
方法2:random + 列表推导式法
str = "abcdefghijklmn"
[random.choice(str) for i in range(0,3)] # 一次取1个元素,返回一个列表,此方法会有重复的元素值
# 结果:有可能出现相同元素
['g', 'l', 'c'] # 第一次执行
['d', 'l', 'l'] # 第二次执行
方法3:原生写法(同方法2)
str = "abcdefghijklmn"
new_li = []
while len(new_li) != 3: # 指定循环3次
temp = random.choice(str) # 每次随机选取一个
if temp not in new_li:
new_li.append(temp) # 满足条件添加到new_li列表
# 结果:有可能出现相同元素
['d', 'g', 'm']