找出哪个变量等于一个值

时间:2017-02-06 22:27:22

标签: python python-2.7

我在Python中有一个变量列表:

a = 1  
b = 0  
c = 0

这些来自脚本的一部分,该脚本获取某些字段的用户输入以进行处理,因此1表示"做某事' a'"" 0意味着"不包括。"因此,有必要知道稍后需要在脚本中使用哪些字段,即哪些字段等于1。

找到a,b或c中哪一个等于1的最佳方法是什么?

我尝试了这种方法(来自here):

test_list = [a,b,c]  
next((x for x in test_list if x == 1), None)

返回1,但我正在寻找它以返回a。这是前提条件,脚本中的下一步采用等于1的变量,并通过变量名而不是值对它们执行某些操作。

我可以像这样长手:

if a == 1:
    print "a"
if b == 1:
...

但我怀疑有一种不错的Pythonic方法可以从等于特定值的变量列表中找到变量的名称。

1 个答案:

答案 0 :(得分:2)

您应该考虑使用字典(映射)而不是列表,因为名称只引用对象但不是对象本身:

d = dict(a = 1, b = 2, c = 0)
print(next((k for k, v in d.items() if v == 1), None))
# a