Используйте обратный cos в лямбда-функции без дополнительного модуля

Фон

Я делаю задачу на codewar, которая просит меня использовать 1 line строчную лямбда-функцию для завершения. В частности, я хочу использовать math.acos в моей лямбда-функции .

# Code contains 2 lines, so it will fail
import math # line 1
fun1 = lambda x: math.acos(x) # line 2

fun1(1)

Вне:

0.0

Приведенный выше код не работает, потому что он содержит 2 строки. Я хочу использовать похожую функцию внутри lambda function :

fun1 = lambda x: XXXX # line 1
fun1(1)

Вне:

0.0

Мой вопрос

Можно ли использовать math.acos в лямбда-функции? Если это не так, возможно, я должен изменить свою идею, чтобы закончить задачу.

Всего 2 ответа


Ну вот:

fun1 = lambda x: __import__('math').acos(x)

Не нужно даже лямбда здесь:

from math import acos as fun1

Но если вам нужна лямбда, вы можете использовать точку с запятой ; поместить его в ту же строку, что и import :

import math; fun1 = lambda x: math.acos(x)

Есть идеи?

10000