事情是这样的!我得到了一个包含3个布尔变量的列表,我想按一下按钮在它们之间切换。每个布尔变量表示由if语句执行的函数。如何平滑地更改上一个值和当前值?一个更好的方法,比如用字典代替单子。你知道吗
我尝试的是:
Gesture, Mouse, Keyboard = False, False, False
ActionList = [Gesture, Mouse, Keyboard]
if ActionList[0]:
# blah
elif ActionList[1]:
# blah
elif ActionList[2]:
# blah
编辑:
我设法把一个工作代码与我迄今收到的答复放在一起。我仍然认为应该有更好的方法来实现这一点。你知道吗
actions = {"gesture": False, "mouse": False, "keyboard": False}
CurrentLen = len(actions) # 3
CurrentAct = 1
TrueValue = 0
while True:
ActionName = actions.keys()[TrueValue]
ActionValue = actions.values()[TrueValue]
if actions.values()[(TrueValue - 1 )]: # Disable last
Disable = actions.keys()[(TrueValue - 1 )]
print "Disable %s" % (Disable)
actions[Disable] = not actions[Disable]
if CurrentAct == CurrentLen:
CurrentAct = 1
TrueValue = 0
elif CurrentAct < CurrentLen:
CurrentAct = CurrentAct + 1
TrueValue = CurrentAct - 1
if not ActionValue: # Enable current
print "Enable %s" % (ActionName)
actions[ActionName] = not actions[ActionName]
我不太清楚你的意思,但这可能有帮助:
它使用字典而不是列表来存储操作。你知道吗
要更改值,可以执行以下操作:
这个问题对我来说很不清楚,希望我答对了。你知道吗
一个想法很简单,在每次迭代中我都想知道以前启用的键,以便轻松地禁用它。为了执行开关的恒定顺序,我建立了键列表(列表中的顺序被保留)。所以我建立了两个列表并
zip
编辑它们。睡在那里只是为了更容易调试。你知道吗可以使用布尔运算符
not
相关问题 更多 >
编程相关推荐