【发布时间】:2017-06-24 00:32:20
【问题描述】:
我有一个 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 方法可以从等于特定值的变量列表中找到变量的名称。
【问题讨论】:
-
为什么不把大量不同值的变量放在一个列表中呢?
-
你的问题真的没有意义;变量没有名字。见nedbatchelder.com/text/names.html
-
不要这样做。使用容器,如列表或字典。
-
似乎是 X-Y 问题。你想要完成什么让你想做这么奇怪的事情?
-
@FredLarson 我敢打赌家庭作业...
标签: python python-2.7