我想創建幾個數據列出了一些基本的統計數據,並將它們存儲在一個字典:在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]]。 –