如何在python中将给定的随机生成的字母打印成矩阵形式

时间:2018-09-12 11:12:58

标签: python matrix

import random
string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for x in range(16):
    a = print(random.choice(string))

如何在python中以4 * 4矩阵的形式打印这些随机生成的字母?

3 个答案:

答案 0 :(得分:1)

您可以像这样在4行中打印4个字母:

import random

string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for x in range(4):
    print(''.join([random.choice(string) for _ in range(4)]))

输出

YTPB
CHQF
UNLC
BOMS

您还可以将矩阵表示为列表列表:

import random

string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
matrix = [[random.choice(string) for _ in range(4)] for _ in range(4)]
print(matrix)

输出

[['U', 'Z', 'L', 'L'], ['R', 'G', 'O', 'M'], ['W', 'X', 'U', 'I'], ['C', 'Q', 'O', 'W']]

答案 1 :(得分:0)

如果要确保字母没有重复,可以将字母随机播放,然后从列表中弹出:

import random
letters = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
random.shuffle(letters)
for row in range(4):
    for col in range(4):
        print(letters.pop(), end=' ')
    print()

答案 2 :(得分:0)

import numpy as np
string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
matrix = np.random.choice(list(string),replace=False,size=(4,4))
print(matrix)

replace=False没有重复,replace=True具有潜在的重复。

如果打印np.random.choice的输出而没有先将其分配给变量名,则可以减少到三行。

您也可以以可读性为代价减少到两行,如下所示:

import numpy as np
print(np.random.choice(list("ABCDEFGHIJKLMNOPQRSTUVWXYZ"),replace=False,size=(4,4)))