Python: присвоение переменной с использованием «или» с лямбда-функциями? [Дубликат]

1

Я столкнулся с вопросом Python Challenge с объявлением переменной, которое я не понял. Он запрашивал вывод этого кода.

a = "abcd"
b = "abc"
func = (lambda s:s[1:]) or (lambda s:s[:-1])
print(func(b))

Я в значительной степени проигнорировал вторую лямбду и получил правильный ответ:

"bc"

Мои вопросы: каково практическое использование "или" при присвоении переменных между лямбда-функциями? И как мне получить доступ ко второй лямбда в выражении "или"? Каким будет пример вызова второй лямбда-функции?

Примечание. Мой вопрос отмечен как дубликат. Другой вопрос и ответ предоставили отличную информацию и дополнительные знания, связанные с моей темой. Однако этот вопрос касается возвращаемых значений и общих утверждений. Я думаю, что мой вопрос отличается тем, что он имеет дело с переменным присваиванием, а не с возвращаемыми значениями, и с применением "или" к функциям, которые я не вижу в другом вопросе. Мне все еще хотелось бы разъяснить концепцию правды или значений ложности, применяемых к лямбда-функции.

Теги:
lambda

1 ответ

1

Давайте посмотрим на это:

a = None or 1 
b = 'ABC' or None
c = None or True
d = 'F' or 'Z'
e = 1 or 2
f = None or None or 5
g = False or None or True
h = 1==2 or 'T'

Запустите вывод для каждой переменной, и вы увидите, что переменные присваиваются с первым значением, если оно не является False/None.

  • 0
    Это имеет большой смысл, я ценю это! Таким образом, в конкретном случае выше, вторая лямбда никогда не будет вызываться. Лямбда точно не будет лучшим примером использования "или", я полагаю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню