Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
14 / 4 / 0
Регистрация: 07.10.2019
Сообщений: 245

Словарь в файл

07.04.2020, 10:35. Показов 1224. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан словарь
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
goods = {
    "карандаш": ("канцелярия", 30),
    "ручка": ("канцелярия", 45),
    "учебник python": ("книги", 500),
    "высшая математика": ("книги", 200)
}
print(goods)
 
dct = {}
tmp = {}
for name in goods:
    category, price = goods[name]
    if category in dct:
        dct[category] += price
        tmp[category] += 1
    else:
        dct[category] = price
        tmp[category] = 1
 
for category in dct:
    dct[category] = dct[category] / tmp[category]
 
print(dct)
Нужно записать конечный словарь в файлы, именем очередного файла будет ключ из
словаря, а значение записывается в файл. Файлы должны записываться в отдельную папку.

Добавлено через 28 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
goods = {
    "карандаш": ("канцелярия", 30),
    "ручка": ("канцелярия", 30),
    "учебник python": ("книги", 500),
    "высшая математика": ("книги", 500)
}
print(goods)
 
dct = {}
tmp = {}
for name in goods:
    category, price = goods[name]
    if category in dct:
        dct[category] += price
        tmp[category] += 1
    else:
        dct[category] = price
        tmp[category] = 1
 
for category in dct:
    dct[category] = dct[category] / tmp[category]
 
print(dct)
 
 
def createdict(dict1):
    dict2 = {}
    n = dict1.items()
    lname = [key for key, value in n]
    lstrit = []
    lnumber = []
    for key, value in n:
        a = value.split()
        lstrit.append(a[0])
        lnumber.append(a[1])
    lnamelnum = []
    for i in range(len(lname)):
        a = lname[i] + ' ' + lnumber[i]
        lnamelnum.append(a)
    for i in range(len(lname)):
        if lstrit[i] in dict2:
            dict2[lstrit[i]] = dict2[lstrit[i]] + ', ' + lnamelnum[i]
        else:
            dict2[lstrit[i]] = lnamelnum[i]
    return(dict2)
for key, value in createdict(dct).items():
    filename = 'Новый файл/' + key
    with open(filename, 'w') as file1:
        for i in value.split(', '):
            file1.write(i + '\n')
Не работает
PowerShell
1
2
3
4
5
6
7
8
Traceback (most recent call last):
  File "4.py", line 46, in <module>
    for key, value in createdict(dct).items():
  File "4.py", line 29, in createdict
    lname = [key for key, value in n]
  File "4.py", line 29, in <listcomp>
    lname = [key for key, value in n]
ValueError: too many values to unpack (expected 2)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2020, 10:35
Ответы с готовыми решениями:

Словарь и файл
Пытаюсь решить задание, где нужно ввести вручную название файла и её содержание. Нужно использовать коллекцию Словари и, взяв оттуда...

Текстовый файл в словарь
Здравствуйте, имеется текстовый файл с таким содержимым: Россия; Москва Франция; Париж Южная Корея; Сеул Как из данного файла...

Записать словарь в файл
Есть словарь, в котором ключи - это тип переменной, а значение - сама переменная. нужно создать файл, именем которого будет ключ, а в самом...

1
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
07.04.2020, 10:57
Лучший ответ Сообщение было отмечено Jushara как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
goods = {
    "карандаш": ("канцелярия", 30),
    "ручка": ("канцелярия", 45),
    "учебник python": ("книги", 500),
    "высшая математика": ("книги", 200)
}
 
dct = {}
tmp = {}
for name in goods:
    category, price = goods[name]
    if category in dct:
        dct[category] += price
        tmp[category] += 1
    else:
        dct[category] = price
        tmp[category] = 1
 
for category in dct:
    dct[category] = dct[category] / tmp[category]
 
for k,s in dct.items():
    l = k+".txt"
    with open(l,'w') as f:
        f.write(str(s));
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.04.2020, 10:57
Помогаю со студенческими работами здесь

Скопировать словарь Word'а в файл?
Мне нужно создать файл, в котором будут все слова, которые &quot;знает&quot; MS Word. Как это сделать?

Работа с файлами. Файл-словарь
Задание: Есть текстовый файл-словарь, в каждой строке которого через символ табуляции записаны английское слово и его перевод на русском....

Надо записать словарь в csv файл
import csv data_a= data_b= with open(&quot;example1.csv&quot;) as file: out=csv.DictWriter(file,) for a,b in data_a,data_b: ...

Как записать словарь в json файл?
d = dict(address=i, latlon=, i], name=i, phones=i, working_hours= + ' до ' + i + s1 + s2]) pprint(d) Надо записать d...

Рекорд в игре, запись в файл, словарь/список
Есть игра змейка и перед началом игры пользователь вводит свой ник и начинает играть. Мне нужно в файл записать рекорды этой игры, тоесть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru