我有4个列表,例如:
m1_jan = [2.3,3.2]
m1_feb = [3.2,2.3]
m2_jan = [1.2,1.7]
m2_feb = [4.5,6.7]
我想获得每个列表的最小值并尝试以下内容:
mon = ['jan','feb']
for i in xrange(1,3,1):
for j in mon:
l = 'm' + str(i) + '_' + j
print l, min(l)
我获得了正确的列表名称但未获得正确的最小值,而是获得以下内容:
m1_jan 1
m1_feb 1
m2_jan 2
m2_feb 2
如何获得每个列表的最小值?
答案 0 :(得分:3)
如果我们改变:
print l, min(l)
为:
print globals()[l], min(globals()[l])
输出将按要求提供:
[2.3, 3.2] 2.3
[3.2, 2.3] 2.3
[1.2, 1.7] 1.2
[4.5, 6.7] 4.5
<强>解释强>
您要查找的变量存储在globals()
也就是说,将这些变量存储在您自己的词典中并通过它访问它们是一种更好的做法,而不是依赖于globals()
答案 1 :(得分:1)
您可以使用dictionary
d = {}
d['m1_jan'] = m1_jan
d['m1_feb'] = m1_feb
d['m2_feb'] = m2_feb
d['m2_jan'] = m2_jan
for mon, min_val in d.items():
print("{} {}".format(mon, min(min_val)))
输出
m1_feb 2.3
m2_feb 4.5
m2_jan 1.2
m1_jan 2.3