请原谅(或改进标题),但我有一个愚蠢的小问题让我非常不确定。
我有一个列表,可以包含一到两个值,从不更多,从不更少,只有这两个选项:
options = ['option one', 'option two']
正如我所说,有时列表中可能只有其中一个值,因此它可能只是['option two',]
此范围是在网站上进行简单导航。我接受查询字符串入口并在列表中搜索这些选项:
current_option = request.GET.get('option', options[0])
if not current_option in options: current_option = options[0]
如果未提供“选项”,则默认为第一个可用选项。
但现在我想知道其他选项是什么。如果"option one"
是输入,我想要"option two"
。例如,如果"option one"
列表中只有options
,我希望返回为False
。
我知道我可以在列表中循环,但感觉应该有更好的方法来选择其他值。
答案 0 :(得分:10)
options.remove(current_option)
options.append(False)
return options[0]
修改:如果您不想修改options
,您也可以使用稍差一点的
return (options + [False])[current_option == options[0]]
答案 1 :(得分:2)
current_option = request.GET.get('option', options[0])
if not current_option in options:
current_option = options[0]
else:
oindex = options.index(current_option)
other_option = False if len(options) != 2 else options[(oindex+1) % 2]