【问题标题】:How to generate random letters in python?如何在python中生成随机字母?
【发布时间】:2018-12-13 07:39:49
【问题描述】:

有没有办法在 python 中生成随机字母。我遇到了一个可以从 a-z 生成随机字母的代码。

例如,以下代码生成以下输出。

import pandas as pd
import numpy as np
import string

ran1 = np.random.random(5)
print(random)
[0.79842166 0.9632492  0.78434385 0.29819737 0.98211011]

ran2 = string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'

但是,我想生成随机字母,输入为随机字母的数量(示例 3),所需的输出为 [a, f, c]。提前致谢。

【问题讨论】:

标签: string python-3.x pandas numpy random


【解决方案1】:

将字符串转换为列表,然后使用numpy.random.choice。你会得到一个数组,但如果你需要,你可以把它做成一个列表。

import numpy as np
import string

np.random.seed(123)
list(np.random.choice(list(string.ascii_lowercase), 10))
#['n', 'c', 'c', 'g', 'r', 't', 'k', 'z', 'w', 'b']

如您所见,默认行为是使用 替换 进行采样。如果需要,您可以通过添加参数 replace=False 来更改该行为。

【讨论】:

    【解决方案2】:

    这是从https://pythontips.com/2013/07/28/generating-a-random-string/修改的想法

    import string
    import random
    
    def random_generator(size=6, chars=string.ascii_lowercase):
        return ''.join(random.choice(chars) for x in range(size))
    

    【讨论】:

    • 我运行了代码,得到的输出是带有随机字母的单词 (bapxsn)。有没有办法得到这样的输出[g,t,d]。应该用逗号分隔。
    • @ALollz 共享的代码完全符合我的预期,谢谢。
    • @vivek 这将以基本相同的方式工作。只需致电list(random_generator(10)),您就会得到一份信件列表。虽然由于函数加入了它们,您可能只想将返回更改为return [random.choice(chars) for x in range(size)] 以自动获取列表
    猜你喜欢
    • 2021-09-23
    • 2011-02-18
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多