如何将串联列表作为参数传递?

时间:2018-07-31 10:13:07

标签: python

我尝试将参数列表传递给必须从列表和字典中放在一起的函数,但是像往常一样,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等形式以及pT和{{1 }}是包含一些实数的简单标量。 Python抱怨C。我也尝试过

'builtin_function_or_method' object is not iterable

具有相同的结果,以及

argl=[p,T,C]+list(ph.items)

结果

argl=[p,T,C]+ph.items

那么,它想要什么?必须有一种方法可以分解字典,使其可以合并为更长的列表(然后可以在调用的函数中重新排列)。

3 个答案:

答案 0 :(得分:3)

dict.items是一种方法。您需要在其上添加括号以实际调用它。例如

argl.append(list(ph.items()))

答案 1 :(得分:2)

错误是ph.items作为内置方法生成器返回,而ph.items()返回所需的值列表。

将代码更正为argl.append(list(ph.items()))

答案 2 :(得分:0)

尽管已经被其他人回答,但以下内容可能会给您带来更多的想法:

dic={'a':1, 'b':2, 'c':3}
print (dic.keys)

输出     <built-in method keys of dict object ....

print (dic.keys())

输出dict_keys(['a', 'b', 'c'])

dic.values也是如此。希望你能得到答案。