python - 我怎样才能避免python中的生成器
问题描述
我想在 python 中绘制一个函数,但我似乎做不到。我正在运行以下代码,但我收到一条错误消息,提示我无法将生成器和浮点数相乘。这是从哪里来的?
from math import *
import matplotlib.pyplot as plt
t=0.1
cd=t*exp(-t/2)
tau=10
nt=100
v=0.01
w=0.9
u=0.4
s0=10
p=5
for i in range (1,10):
sigma= u/(w+(s0/(p*cd)))
print(sigma)
C= lambda ksi: cd * (1-exp(((u-w * sigma)/v)*ksi))
plt.plot([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1],[C(i for i in range (-10,-1))])
plt.xlabel(ksi)
plt.ylabel(concentration)
plt.title("tumeur avec regénessence")
plt.legend()
plt.show()
t+=tau/nt
这是我得到的错误
Traceback (most recent call last):
File "C:\Users\ilyes\Downloads\tumeur_avec_regénesence.py", line 18, in <module>
plt.plot([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1],[C(i for i in range (-10,-1))])
File "C:\Users\ilyes\Downloads\tumeur_avec_regénesence.py", line 17, in <lambda>
C= lambda ksi: cd * (1-exp(((u-w * sigma)/v)*ksi))
TypeError: unsupported operand type(s) for *: 'float' and 'generator'
解决方案
利用
plt.plot([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1],[C(i) for i in range (-10, 0)])
代替
plt.plot([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1],[C(i for i in range (-10,-1))])
解释:您想C
一次应用不在孔列表上的每个值。range(-10,-1) 为您提供值-10 <= v < -1
,但您希望包含 -1。
推荐阅读
- r - 获取特定日期之前/之后“x”天的平均值
- r - 我部署的应用程序未正确显示地图
- react-native - 当我询问位置时,默认情况下在 react native 上获取 never_ask_again
- excel - 在 Excel 中使用 IncludeVersions=TRUE 打开 .iqy 文件不会返回版本历史记录
- python - 在没有 pytest/unittest/etc 的情况下使用 mock 拦截函数调用
- pine-script - Pinescript 如何显示 strategy.account_currency?
- java - 在 Java 中将 Map 转换为 JSON
- c# - 使用 sql 提高 Web 应用程序中的搜索速度
- jq - 使用 --output 表时 OCI CLI 命令失败并出现解析错误
- yaml - 在 gitlab-ci.yml 文件中编写 for 循环脚本