Python:选择其他值

时间:2011-05-16 13:30:21

标签: python list

请原谅(或改进标题),但我有一个愚蠢的小问题让我非常不确定。

我有一个列表,可以包含一到两个值,从不更多,从不更少,只有这两个选项:

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

我知道我可以在列表中循环,但感觉应该有更好的方法来选择其他值。

2 个答案:

答案 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]