Как привести массив к нужному виду?
Ответ на этой странице для меня немного сложноват, нужно алгоритм простыми словами :)
Входные данные: 1 поправил подвёз 1 3 переместил
Из этой строки нужно сделать пары ключ-значение:
поправил: 1, подвез: 1, переместил: 3.
Как это сделать?
Предполагаю, что надо сделать из строки массив слов, например методом string.split() в python (приветствуются также примеры на C++ и Java), затем отсортировать массив в порядке "слово, число, слово, число..." (как это сделать пока не знаю), а потом просто достать из этого массива пары. Нужен алгоритм сортировки или другой метод решения задачи.
Спасибо.
Ответы (1 шт):
Для этого и подобных случаев можно так, например:
a = "1 поправил подвёз 1 3 переместил"
words = []
numbers = []
_ = [numbers.append(int(x)) if x.isdigit() else words.append(x) for x in a.split()]
res = dict(zip(words, numbers))
print(res)
{'поправил': 1, 'подвёз': 1, 'переместил': 3}
либо, то же самое, но короче:
a = "1 поправил подвёз 1 3 переместил"
res = dict(zip((x for x in a.split() if not x.isdigit()),
(x for x in a.split() if x.isdigit())))