Как генерировать случайные буквы в Python? - PullRequest
0 голосов
/ 05 июля 2018

Есть ли способ генерировать случайные алфавиты в 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]. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Преобразовать строку букв в список, а затем использовать 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.

0 голосов
/ 05 июля 2018

Вот идея, измененная с 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))
...