首页 > 解决方案 > 函数用 3 个单独的列表踢出变量

问题描述

对于我正在编写的程序,我的目标是调用一个函数,给它 2 个值,然后让它根据这 2 个数字返回列表。这是我到目前为止所拥有的,

import numpy as np


def list_maker (n, m):
    for n in range(n):

        l = list(np.random.randint(1,9, m))
        print(l)

我的目标是输入“list_maker(3,5)”并让它输出 3 个列表,每个列表有 5 个元素。我想继续使用 numpy,这样我就可以了解更多关于它的信息,而不是其他类型的操作。每当我调用我的函数时,

list_maker(3,5)
[2, 7, 1, 5, 6]
[8, 5, 1, 3, 5]
[8, 2, 6, 3, 7]

但是,我不能专门更改一个列表中的一个元素,如果我做 l[0] = "Blank",0 位置的所有元素都会变成空白,我不能做 [0],[1]... .任何想法如何获得输出,如,

list_maker(3,5)
[[2, 7, 1, 5, 6],
[8, 5, 1, 3, 5],
[8, 2, 6, 3, 7]]

然后我可以在哪里专门编辑 numpy 完成的列表之一中的一个元素?

谢谢大家的回复!

标签: pythonpython-3.xlistnumpy

解决方案


你想返回一个列表列表。一个简单的列表理解将起作用:

import numpy as np

def list_maker (n, m):
    return [list(np.random.randint(1,9, m)) for _ in range(n)]

然后:

>>> list_maker(3,5)
[[1, 7, 2, 5, 7], [3, 5, 5, 7, 7], [8, 5, 1, 1, 1]]

推荐阅读