Как разбить строку на переменные с преобразованием
Нужно разделить input на переменные нужного типа. К примеру на вход получаем "Иван 10 100" необходимо разделить это на 3 переменные с типами str, int, int. Есть решение с написанием отдельного метода, но от него требуется избавиться.
def participant(name, score, penalty):
return [- int(score), int(penalty), name]
amount = int(input())
members = [participant(*input().split()) for _ in range(amount)]
Ответы (2 шт):
Автор решения: Sergey Tatarincev
→ Ссылка
Вы можете проверить состоит ли строка из одних только цифр и преобразовать только эти части
parts = []
string = 'hello 10 world 45'
for s in string.split(' '):
if s.isdigit():
parts.append(int(s))
else:
parts.append(s)
print(parts)
Автор решения: Игорь Старков
→ Ссылка
Построить список с помощью list comprehension
a = input()
result = [int(x) if x.isdigit() else x for x in a.split()]
print(result)