我试图将一个参数列表传递给一个必须从列表和字典中组合起来的函数,但是像往常一样,Python 毫无帮助地提示某些东西“不可迭代”或“不可订阅”,却没有说明到底是什么错误的。请考虑以下事项:
argl=[p,T,C]
argl.append(list(ph.items))
Ci['ol']=fsolve(Cr_impl,0.1*C,argl)
其中 fsolve 是 numpy 的根查找器,ph 是一个字典,其条目的形式为 'ol': 0.55 等,p、T 和C 是包含一些实数的简单标量。 Python 提示 'builtin_function_or_method' 对象不可迭代。我也试过了
argl=[p,T,C]+list(ph.items)
同样的结果,还有
argl=[p,T,C]+ph.items
结果
can only concatenate list (not "builtin_function_or_method") to list
那么,它想要什么?必须有办法将 dict 拆分成一个更长的列表(然后可以在调用的函数中重新排列)。
请您参考如下方法:
dict.items 是一个方法。您需要为其添加括号才能实际调用它。例如
argl.append(list(ph.items()))
