访问for循环的每个索引的完整列表

时间:2015-02-08 06:36:30

标签: list python-2.7

我有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

如何获得每个列表的最小值?

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