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

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

Сообщение Anonymous »


Мой ввод представляет собой список:

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

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

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

{'a': [], 'b': [4], '': [4], 'c': [6], 'd': [], 'e': [0.4 , 0,5], 'f': [], 'g': []} Можете ли вы показать мне, как исправить мой код?

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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