Не существует какого-либо доступного способа сделать это, но вы можете написать свою собственную функцию для него; например:
def my_input(data_types):
user_input = input()
split_user_input = user_input.split()
converted_input_tokens = []
for input_token, data_type in zip(split_user_input, data_types):
converted_input_tokens.append(data_type(input_token))
return converted_input_tokens
Это будет делать именно (не больше, не меньше) то, что вы показали в приведенном вами примере. Вы можете использовать это следующим образом:
>>> my_input((str, int, float))
1 2 3
Что вернет:
['1', 2, 3.0]
Конечно, это можно сделать гораздо более обобщенным c. Например, вы можете добавить аргументы для приглашения ввода, sep
и maxsplit
для метода str.split
, используемого в функции, и т. Д. c.
Если вы сомневаетесь в том, как Сделайте это, посмотрите официальную документацию для input
, str.split
, а также проведите некоторые исследования по преобразованию типов в Python.