Чтобы проверить, содержится ли значение в наборе переменных, вы можете использовать встроенные модули itertools
и operator
.
Например:
Импорт:
from itertools import repeat
from operator import contains
Объявить переменные:
x = 0
y = 1
z = 3
Создать сопоставление значений (в порядке, который вы хотите проверить):
check_values = (0, 1, 3)
Используйте itertools
для разрешить повторение переменных:
check_vars = repeat((x, y, z))
Наконец, используйте функцию map
для создания итератора:
checker = map(contains, check_vars, check_values)
Затем при проверке значений (в оригинале порядок), используйте next()
:
if next(checker) # Checks for 0
# Do something
pass
elif next(checker) # Checks for 1
# Do something
pass
и т. д. ...
Это имеет преимущество перед lambda x: x in (variables)
, потому что operator
является встроенным модулем и работает быстрее, более эффективен, чем при использовании lambda
, который должен создать пользовательскую функцию на месте.
Еще одна опция для проверки наличия ненулевого (или False) значения в списке:
not (x and y and z)
Эквивалент:
not all((x, y, z))
Если вы говорите об ASP.NET MVC, то у вас должен быть метод контроллера, который возвращает следующее:
return Redirect("http://www.google.com");
В противном случае нам нужна дополнительная информация об ошибке, которую вы получаете в перенаправлении , Я бы сделал шаг, чтобы убедиться, что URL не пуст.
Использование JavaScript
public ActionResult Index()
{
return Content("<script>window.location = 'http://www.example.com';</script>");
}
Примечание. Поскольку @Jeremy Ray Brown сказал: «Это не лучший вариант, но вы можете оказаться полезными в некоторых ситуациях.
Надеюсь, это поможет.