我想创建几个数据列出了一些基本的统计数据,并将它们存储在一个字典:在Python中为多个列表创建统计字典?
>>> from statistics import mean,median
>>> a,b,c=[1,2,3],[4,5,6],[7,8,9]
下面的列表理解的工作,并且输出统计信息“一”:
>>> [eval("{}({})".format(op,a)) for op in ['mean','median','min','max']]
[2, 2, 1, 3]
分配列表的变量名称(a)到另一个对象(dta)并在列表理解中评估“dta”也起作用:
>>> dta="a"
>>> [eval("{}({})".format(op,eval("dta"))) for op in ['mean','median','min','max']]
[2, 2, 1, 3]
Bu T当我试图在一个字典解析一起配合这一点,这是行不通的:
>>> {k:[eval("{}({})".format(op,eval("k"))) for op in ['mean','median','min','max']] for k in ['a','b','c']}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <dictcomp>
File "<stdin>", line 1, in <listcomp>
File "<string>", line 1, in <module>
NameError: name 'k' is not defined
我的猜测是,EVAL是修真之前处理,这就是为什么“K”尚未确定?有关如何获得这项工作的任何建议或完成相同产出的不同例程?
有趣的问题,但你的代码工作:'{ 'A':[2.0,2,1, 3],'c':[8.0,8,7,9],'b':[5.0,5,4,6]} –
为什么使用eval? –
你为什么在这里使用'eval'? Python具有一流的功能:使用它们!例如[stat(a)for stat in [mean,median,min,max]]。 –