我想打印随机从字母表中选择4个字母。我怎样才能做到这一点使用“为”在一个单一的代码行?
以前我做它在一个for循环使用的代码的一小块,但我想只用一个单一的代码行做。
这是我在过去所做的:
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页随机选择的信吗?
输出告诉你到底发生了什么上。 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))
)直接消耗发电机。