Помогите с словарем списков
Есть excel файл, в виде:
Номер телефона, Номер дисконт карты, ФИО, Бонусы.
Скажите, как с этого файла сделать:
bonuses={
Номер телефона:[Номер дисконт карты, Бонусы, ФИО],
Номер телефона:[Номер дисконт карты, Бонусы, ФИО], итд.
}
Ответы (2 шт):
Автор решения: Дмитрий
→ Ссылка
Вариант следующий. Пройти циклом for, по Вашему файлу:
bonuses = {}
for data in 'excel file':
# в data будет строка из вашей таблицы, с типом данных, которые можно итерировать,
# и с которым можно работать срезами и обращаться по индексам
bonuses.setdefault(data[0], []).append(','.join([c for c in data[1:]]))
Результат на каждой итерации:
{'номер телефона': ['номер карты,бонус,ФИО']}
Так правда неудобно будет работать с полученными данными, но всё зависит от того, что с ними дальше делать.
Альтернативный вариант:
bonuses = {}
for data in 'excel file':
bonuses.setdefault(data[0], [])
bonuses[data[0]].append(data[1])
bonuses[data[0]].append(data[2])
bonuses[data[0]].append(data[3])
Результат.
{'номер телефона': [1254, 'бонус', 'ФИО']}
Автор решения: SergFSM
→ Ссылка
еще как вариант можно использовать pandas, он и excel файл заодно прочитает. вот что-то вроде этого:
import pandas as pd
df = pd.read_excel('file.xlsx', index_col=0)
bonuses = df.apply(list,1).to_dict()
как в pandas прочесть excel можно посмотреть в документации