如何使用python 3中的列表中的元素打印3x3 2D数组?

时间:2019-01-11 21:50:10

标签: python-3.x

我写了一个显示列表的代码。

import random

def Rand(start, end, num): 
    res = [] 

    for j in range(num): 
        res.append(random.randint(start, end)) 

    return res

num = 9
start = 1
end = 100
numbers = [(Rand(start, end, num))]
print(numbers)

输出为列表中的9个随机数。

[[10, 32, 86, 84, 46, 91, 71, 52, 7]]

我想在3x3 2D数组中打印随机数。

10 32 86 
84 46 91 
71 52 7

1 个答案:

答案 0 :(得分:0)

我将跳过随机化部分,因为它与您的问题无关。通常,要将列表分成n个大小的块,您可以在n步骤中迭代索引的同时简单地对列表进行切片:

numbers = [10, 32, 86, 84, 46, 91, 71, 52, 7]
n = 3
print([numbers[i:i+n] for i in range(0, len(numbers), n)])

这将输出:

[[10, 32, 86], [84, 46, 91], [71, 52, 7]]

或者如果您希望输出看起来像3x3 2D阵列:

print('\n'.join(' '.join(map(str, numbers[i:i+n])) for i in range(0, len(numbers), n)))

这将输出:

10 32 86
84 46 91
71 52 7

请注意,您问题中的numbers变量包含数字列表的列表,而不是数字列表。您应该改为进行分配numbers = Rand(start, end, num),而不必将其放在另一个列表中。