You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在循环中合并列表生成适配高斯绘图的二维数据结构?

问题解决方案

修正代码得到目标二元列表

原代码问题出在循环内分别追加了两个单元素列表,才会出现当前的拆分结构。同时原有代码存在冗余逻辑、函数依赖全局变量的问题,修正后代码如下:

# 先定义高斯参数,这里你可以替换成自己的实际取值
a = 1
mu = 0
sig = 1
Gauss_list = []

# 把z作为参数传入函数,避免依赖全局变量
def GetDepth(z):
    return float(a * 2.7 - (z - mu)**2 / (2 * sig**2))

# 直接遍历0~200的z值,删掉冗余的自增和无效内层循环
for z in range(0, 201):
    # 直接将z和对应的高斯值拼成一个列表追加
    Gauss_list.append([z, GetDepth(z)])

print(Gauss_list)

运行后就会得到你需要的[[z值, 高斯值], ...]结构。

无需生成二元列表的绘图方案

使用Matplotlib绘图不需要提前拼二元列表,单独生成x轴(z值)和y轴(高斯值)两个一维序列即可直接绘制,甚至可以用numpy向量化运算省略循环,代码更简洁:

import numpy as np
import matplotlib.pyplot as plt

# 定义高斯参数
a = 1
mu = 0
sig = 1

# 直接生成0~200的z值序列(向量化运算不需要写循环)
z_arr = np.arange(0, 201)
# 直接计算所有z对应的高斯值
gauss_arr = a * 2.7 - (z_arr - mu)**2 / (2 * sig**2)

# 直接绘图,不需要生成二元列表
plt.plot(z_arr, gauss_arr)
plt.xlabel('z')
plt.ylabel('高斯函数值')
plt.show()

这种方案运算效率更高,代码更简洁,也不需要额外处理列表拼接逻辑。

内容的提问来源于stack exchange,提问作者Rus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:24:03