为了账号安全,请及时绑定邮箱和手机立即绑定

如何在重复数字的python中创建矩阵?

如何在重复数字的python中创建矩阵?

LEATH 2021-09-14 10:22:32
我想:创建一个从 0 到 4 的向量列表,即 [0, 1, 2, 3, 4] 并从中创建一个包含从 0 到 4 的“分层列表”的矩阵,3 次,每个维度一次. 矩阵有 4^3 = 64 行,例如T = [0 0 0           0 0 1         0 0 2         0 0 3         0 0 4         0 1 0         0 1 1         0 1 2         0 1 3         0 1 4         0 2 0         ...         1 0 0         ...         1 1 0         ....         4 4 4]    这是我到目前为止:n=5;ind=list(range(0,n))print(ind)我刚刚开始使用 Python,所以任何帮助将不胜感激!
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

python itertools 模块 product()函数可以做到这一点:


for code in itertools.product( range(5), repeat=3 ):

    print(code)

给出结果:


(0, 0, 0)

(0, 0, 1)

(0, 0, 2)

(0, 0, 3)

...

(4, 4, 2)

(4, 4, 3)

(4, 4, 4)

所以要把它变成一个矩阵:


import itertools

matrix = []

for code in itertools.product( range(5), repeat=3 ):

     matrix.append( list(code) )


查看完整回答
反对 回复 2021-09-14
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

请注意,您确实希望矩阵具有 5^3 = 125 行。基本的答案是在嵌套的 for 循环中迭代:


T = []

for a in range(5):

    for b in range(5):

        for c in range(5):

            T.append([a, b, c])

还有其他可能更快的方法来做到这一点,但对于纯粹的完成速度,很难击败它。


查看完整回答
反对 回复 2021-09-14
?
慕村225694

TA贡献1880条经验 获得超4个赞

 list_ = []

 for a in range(5):

     for b in range(5):

        for c in range(5):

              list_ += [a ,b ,c ]


 print(list_)


查看完整回答
反对 回复 2021-09-14
  • 3 回答
  • 0 关注
  • 316 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信