【问题标题】:Function is kicking out variable with 3, separate lists函数用 3 个单独的列表踢出变量
【发布时间】:2019-10-10 21:05:15
【问题描述】:

对于我正在编写的程序,我的目标是调用一个函数,给它 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 完成的列表之一中的一个元素?

感谢大家的回复!

【问题讨论】:

  • [list(np.random.randint(1,9, m)) for _ in range(n)] 可能
  • 你到底为什么要使用 numpy 呢?
  • 我正在使用 python 进行数据分析,并且想先用 numpy 弄湿我的脚。

标签: python python-3.x list numpy


【解决方案1】:

你想返回一个列表列表。一个简单的列表理解就可以了:

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]]

【讨论】:

    【解决方案2】:

    目前您的函数只是打印列表而不返回它们。

    而且我不完全确定您的意图;目前你不是在创建一个 numpy 数组,而是一个列表。更具体地说,您正在创建一个包含 3 个列表的列表,而不是 3 个单独的列表。

    您可以通过将 n, m 值直接传递给 numpy 的 randint 来创建一个 numpy 数组:

    np.random.randint(1,9, size=(n, m))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 2014-07-13
      • 2018-11-26
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      相关资源
      最近更新 更多