Как сгруппировать элементы списка на основе перехода их типов?Python

Программы на Python
Anonymous
Как сгруппировать элементы списка на основе перехода их типов?

Сообщение Anonymous »


Мой ввод — список:

данные = [ -1, 0, 'а', 'б', 1, 2, 3, 'с', 6, 'д', 'е', .4, .5, 'а', 'б', 4, 'ф', 'г', ] Я пытаюсь сформировать группы (словарь), где ключами являются строки, а значениями — числа, следующие за ними.

Однако мне следует учитывать две детали:
[*]Список данных, которые я получаю, иногда может содержать некоторые ведущие нестроковые значения, которые следует игнорировать. [*]Количество строк варьируется, но минимум — 1.
Для всего этого я написал код ниже:

start = list(map(type, data)).index(str) хотел = {} для меня в данных[start:]: строки = [] если тип(i) == строка: strings.append(я) числа = [] еще: числа.append(я) хотел['/'.join(strings)] = числа Это дает мне почти то, что я ищу:

распечатать(требуется) # {'a/b': [1, 2, 3, 4], 'c': [6], 'd/e': [0.4, 0.5], 'f/g': []} Можете ли вы показать мне, ребята, как исправить мой код?

Мой ожидаемый результат таков:
{'a/c': [1, 2, 3], 'b': [6], 'c/d': [0,4, 0,5], 'e/f': []}

Вернуться в «Python»