Как привести массив к нужному виду?

Рейтинг: -3Ответов: 1Опубликовано: 18.02.2023

Ответ на этой странице для меня немного сложноват, нужно алгоритм простыми словами :)

Входные данные: 1 поправил подвёз 1 3 переместил

Из этой строки нужно сделать пары ключ-значение:

поправил: 1, подвез: 1, переместил: 3.

Как это сделать?

Предполагаю, что надо сделать из строки массив слов, например методом string.split() в python (приветствуются также примеры на C++ и Java), затем отсортировать массив в порядке "слово, число, слово, число..." (как это сделать пока не знаю), а потом просто достать из этого массива пары. Нужен алгоритм сортировки или другой метод решения задачи.

Спасибо.

Ответы

▲ 2Принят

Для этого и подобных случаев можно так, например:

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())))