首页 > 解决方案 > Python:使用 def 和 for 循环为列表中的一系列值导出多个数组

问题描述

我已经查看了有关此主题的多个其他线程,但我找不到任何适合我需要的东西。我试图达到的最终结果是一个范围内每个数字的 numpy 数字数组。我曾尝试使用 for 循环和 python 的 def 功能来完成此操作,但我觉得我可能错过了一步。到目前为止我写的代码如下。

source_values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]

def CreateSourceList(z):
    y = []
    for i in z:
        Start = 3332
        n = 21
        End = 11733
        y = np.arange(Start + i, End, n)
    return y

该代码为 source_values 列表中的每个值创建一个 numpy 数组,并在数组的计算中使用源的值。但是,当我使用新函数 (CreateSourceList) 时,它只会返回 source_values 列表中最后一个源值的 numpy 数组。那么无论如何要为 source_values 列表中的每个源值导出一个 numpy 数组吗?

谢谢!

标签: pythonfunctionnumpy

解决方案


您可以只使用列表推导来生成您的数字。此外,只需将偏移量添加i到您的原始范围。

Start = 3332
n = 21
End = 3395
source_values = [1, 2, 3]

>>> [np.arange(Start, End, n) + i for i in source_values]
[array([3333, 3354, 3375]),
 array([3334, 3355, 3376]),
 array([3335, 3356, 3377])]

推荐阅读