Как получить входные данные, подобные этим в python? с несколькими линиями и условиями? - PullRequest
0 голосов
/ 24 марта 2020

Ввод: Zantro@16.15 Zity@12.5 Gamry@9.8

Условия вывода:

Имя и пробег некоторых автомобилей передаются в качестве ввода. Формат CARNAME@MILEAGE и ввод в виде одной строки с информацией о каждой машине, разделенной пробелом. Программа должна распечатать автомобиль с наименьшим пробегом.

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Грубо говоря, вот ложка, которой я вас кормлю:

Таким образом, вы берете входные данные для каждого пробела.

entries = the_input.split() # str.split with no arg splits on whitespace

Теперь у вас есть список "Car@Number». L oop сверх этого, разделенный символом "@".

 car_name, mileage = entry.split("@")
 mileage = float(mileage) # parse the string into a floating point number

Примечание: вы хотите l oop записей и поместить каждую в список, который вы создали ранее, например: complete_entries, как поэтому

complete_entries.append((car_name, mileage))

, чтобы заполнить список tuples из (car_name, mileage)

, тогда вы можете сделать

print(sorted(complete_entries, key=lambda x: x[1])

Для печати нового списка sorted, где key - это функция lambda, которая принимает один параметр x и индексирует элемент секунд x (x[1]), который соответствует полю mileage кортежа.

0 голосов
/ 24 марта 2020

Вы можете использовать функцию split для разделения carnames и mileage и сравнения.

s = input().split(" ")
d = {}
l = []
for data in s:
    value, key = data.split("@")
    d[key] = value
    l.append(float(key))

print(d[str(min(l))])
...