我在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方法可以从等于特定值的变量列表中找到变量的名称。
答案 0 :(得分:2)
您应该考虑使用字典(映射)而不是列表,因为名称只引用对象但不是对象本身:
d = dict(a = 1, b = 2, c = 0)
print(next((k for k, v in d.items() if v == 1), None))
# a