Как я могу напечатать случайную выборку (с random.sample (range (x, y), z)), используя цикл for в ОДНОЙ строке кода в Python? - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь напечатать 4 буквы, случайно выбранные из алфавита.Как я могу сделать это, используя «for» в одной строке кода?

Ранее я делал это с помощью небольшого блока кода в цикле for, но я хочу сделать это, используя только одну строкуcode.

Это то, что я делал в прошлом:

for i in random.sample(range(97, 124), 4):
    print(chr(i), end='')

OUTPUT: 'fgaj'

Теперь я пытаюсь сжать это в одну строку кода, например:

print(chr(i) for i in random.sample(range(97, 124), 4))

Однако я получаю следующий вывод:

<generator object <genexpr> at 0x10d10e1b0>

Почему он не печатает 4 случайно выбранных буквы?

1 Ответ

0 голосов
/ 10 февраля 2019

Выходные данные точно сообщают вам, что происходит.chr(i) for i in random.sample(range(97, 124), 4) - это генератор.Заключите его в квадратные скобки (print([chr(i) for i in random.sample(range(97, 124), 4]) для печати букв в списке) или используйте распаковку (print(*(chr(i) for i in random.sample(range(97, 124), 4))) для непосредственного использования генератора.

...