Помогите с словарем списков

Есть 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 можно посмотреть в документации

→ Ссылка