@Solo_M0N

Как считать выражение из переменной?

Здравствуйте!
На входе есть список целых чисел и выражений:
lst = [1, 2, 1-2**64, 2**64]
НЕТ возможности изменить тип входных данных:
lst = ["1", "2", "1-2**64", "2**64"] # вот так я не могу сделать!

Нужно вывести минимальоне из списка.
При попытке:
print(min(lst))
Я получаю -18446744073709551615 - это результат выражения 1-2**64
Вопрос - можно ли вывести не результат а выражение в строковом виде "1-2**64"
При обращении к переменной, содержащей выражение, сначала вычесляется результат выражения, а потом предоставляется доступ к этому результату.
Можно ли, каким то способом(желательно элементами язика Python), при обращении к переменной, содержащей выражение(1-2**64) НЕ В СТРОКОВОМ виде, считать ее содержимое поэлементно, до выполнения выражения?
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
AshBlade
@AshBlade
Просто хочу быть счастливым
Если это
lst = [1, 2, 1-2**64, 2**64]
то нельзя, так как 1-2**64 вычисляется в момент создания списка.

Единственный вариант - сразу передавать в строковом виде
lst = ["1", "2", "1-2**64", "2**64"]
pairs = [(x, eval(x)) for x in lst]
min_pair = min(pairs, key=lambda x: x[1])
print(min_pair[0])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы