如何在Python中生成含9个0到25步长0.05序列的嵌套列表?
解决方法
你的问题根源在于np.arange生成的是numpy数组而非原生Python列表,导致嵌套后的输出格式不符合预期。以下两种方法可以实现目标结构:
方法一:numpy转原生列表
将每个np.arange的结果转换为Python列表,同时用列表推导式简化重复代码(无需手动写9次):
import numpy as np # 生成单个序列并转成列表,重复9次 target_list = [np.arange(0, 25.05, 0.05).tolist() for _ in range(9)]
方法二:纯Python实现(无需numpy)
如果不想依赖numpy,直接用原生Python生成序列再重复:
step = 0.05 # 计算序列元素总数:(25 / 0.05) + 1 = 501个 single_sequence = [i * step for i in range(int(25 / step) + 1)] # 用copy()避免所有子列表指向同一内存地址 target_list = [single_sequence.copy() for _ in range(9)]
注:如果遇到浮点数精度问题(如出现
0.15000000000000002这类值),可以用round(i * step, 2)替代i * step来保留两位小数。
验证输出格式时,打印target_list就能得到你期望的纯列表嵌套结构:
[[0, 0.05, 0.1, ..., 25], [0, 0.05, 0.1, ..., 25], ..., [0, 0.05, 0.1, ..., 25]]
内容的提问来源于stack exchange,提问作者Hans
相关产品推荐
相关产品推荐

