@MarikMarakesh02

Как создать ключи в большом списке\словарь, где ключ должен выступать по длине 8 символов?

Есть экселька, читаю через
df =pd.read_excel('P:/Program Files/1/1.xlsx')
list1 = df.values.tolist()


Получаю лист
print(list1)
[[39209510, 'Реализация товаров и услуг МО000130664 от 01.11.2022 5:12:18', nan, nan], [5053990101573, 'Принглс 165г. 1х19 Оригинал (Красный)  (П-56 Р-8)', 1.0, 175.64], [5053990158270, 'Принглс 165г. 1х19 Ветчина в медовой глазури  (П-56 Р-8)', 1.0, 159.8], [5053990106868, 'Принглс 165г. 1х19 Паприка (56)  (П-56 Р-8)', 1.0, 175.64], [5053990101597, 'Принглс 165г. 1х19 Сметана Лук (Зеленый)  (П-56 Р-8)', 1.0, 175.64], [4604386002502, 'Вафли Венские 100г.  1х22 Земляника (П-96 Р-12) 140', 2.0, 29.98], [4604386002625, 'Вафли Венские 100г.  1х22 Сгущенка (П-96 Р-12) 141', 2.0, 29.98], [4604386005367, 'Вафли Венские 100г.  1х22 Сливочно-Ванильный (П-96 Р-12) 147', 2.0, 29.98], [4690388110239, 'Лейс 81г. 1х25 Зеленый Лук (П28  Р4) 69', 25.0, 56.46], [4690388110215, 'Лейс 81г. 1х25 Сыр (П28  Р4) 17', 25.0, 56.46], [4690388111199, 'Лейс 140 гр. 1х19 Зеленый лук', 19.0, 95.1], [4690388111441, 'Лейс 140 гр. 1х19 Сметана-Лук', 19.0, 85.85], [7622201511135, 'Холс 1х12х30  25г. Апельсин-Витамин С (П-55 Р-11)', 12.0, 19.57], [4690388108052, 'Лейс 50 гр. 1х28 Зеленый Лук  (П-72  Р-12) 38', 28.0, 40.89], [4690388107772, 'Лейс 50 гр. 1х28 Сметана Зелень (П-72  Р-12) 43', 28.0, 40.89], [4690388107581, 'Лейс 50 гр. 1х28 Сыр   (П-72  Р-12) 45', 28.0, 40.89], [4606157004807, 'Холодок Ассорти 15г. 1х30х24 Фруктовый с Шипучкой', 30.0, 5.39], [5053990157198, 'Принглс 190г. 1х19 Сметана и Лук (П-48)', 5.0, 159.8], ['42203100', 'Орбит 1х30х20  Клубника-Банан (П-57 Р-19)', 30.0, 34.44], [5201360578931, 'Круассаны "Севен Дейс" 105 г. 1х18 Сгущенка (П-66 Р-6) АКЦИЯ 20%!', 18.0, 43.3], [4604386002601, 'Вафли Венские 100г.  1х22 Абрикос (П-96 Р-12) 139', 2.0, 29.98], [7622210357915, 'Пикник 76г.1х30 БИГ Новая Фасовка (П-135 Р-15)', 30.0, 51.69], ['46164254', 'Холс 1х12х30  25г. Ассорти 230 (П-55 Р-11)', 12.0, 19.57], ['46003553', 'Натс Батончик 50г.1х30  (П-266 Р-38)', 30.0, 31.55], [4600494694202, 'Адреналин Раш 0,449х12  (171)', 12.0, 94.16], [50173808, 'Орбит 1х30х20  Сладкая Мята (П-57 Р-19)', 30.0, 34.44], ['46164216', 'Холс 1х12х30  25г. Арбуз 253 (П-55 Р-11)', 12.0, 19.57], ['46164230', 'Холс 1х12х30  25г. Лимон+Мед 237 (П-55 Р-11)', 12.0, 19.57], [4011100091108, 'Марс 50г.1х8х36 (П-49 Р-7)', 36.0, 37.39], [4660085515163, 'Сникерс 80г.1х4х32 СУПЕР (П-64 Р-8)', 32.0, 52.58], [4607065580216, 'Доширак 90г.1х24  Говядина   (42) или (90)  красный', 10.0, 40.87], [4607065580223, 'Доширак 90г.1х24  Курица   (42) или (90) зеленый', 10.0, 40.87], [4604386006258, 'Вафли Венские 150 г. 1х24 Со взбитыми сливками и Вишней (П-72 Р-9) 32', 5.0, 70.45], [39209520, 'Реализация товаров и услуг МО000130909 от 01.11.2022 5:12:18', nan, nan], [5449000000996, 'Кока Кола 0,33х24 Банка (110) ПОЛЬША', 120.0, 44.37], [4780022621303, 'Пепси Кола 0,449х24 ЖБ (72)', 24.0, 65.46], ['BE033COLA', 'Кока Кола 0,33х12 Банка (168) (Бельгия)', 24.0, 49.08], ['39279610', 'Реализация товаров и услуг МО000134263 от 02.11.2022 4:45:23', nan, nan], [4600680001951, 'Нескафе  Голд м/у 750 1х6  (56)', 12.0, 1287.22], ['39309910', 'Реализация товаров и услуг МО000132103



Преобразую в словарь и делаю ключи.

dct = {}
for line in list1:
    if len(str(line[0])) in (8,9):
        key = line[0]
    else:
        dct.setdefault(key, []).append(line)

key in dct

print(dct)

Получаю только один ключ 39309910

Как получить все ключи?
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Вам надо ознакомиться, как правильно работать со словарем в python. В частности, надо использовать метод .update, правильным образом подавая в вашем цикле в него кусочек словаря, содержащий очередной ключ и его значение.
Тогда в словаре накопятся все найденные ключи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы