Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42

Создать словарь, связав его с переменной factory, и заполните данными

29.08.2022, 14:12. Показов 2088. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите исправить код по таким условиям:

1. Создать словарь, связав его с переменной factory, и заполните данными,

которые бы отражали количество работников в разных отделах (It department, Sales dep, Prodaction dep, Law dep, Construction dep и т. п.).

Внесите изменения в словарь согласно следующим критериям:

а) в одном из департаментов изменилось количество работников,
б) в компании появился новый департамент,
с) в компании был расформирован (удален) другой департамент.

Вычислите общее количество сотрудников в компании.

Так же сохраните данный словарь в файл csv. И после снова откройте и считайте данные из фала, чтобы продемонстрировать правильность сохранения.

2. Выполнение всех действий и подзадач пункта 1 с учетом работы с JSON файлами.

вот код который у меня получился:

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
import csv
 
deparment = [{'deparment': "management department",'employees' : 122,
              'deparment': "police department", 'employees' : 77,
              'deparment': "Department of Education", 'employees': 33}]  # Словарь депортаментов и их сотрудников
 
 
deparment["management department"] = 152  # в департаменте управления изменилось количество работников
 
deparment["police department"] = -15  # в полицейском департаменте уволилось 15 сотрудников
 
del deparment["Department of Education"]  # департамент образовния был удален
 
print(f"Всего учеников в депортаменте: {sum(deparment.values())}")  # Выводим на экран общее число сотрудников в департаменте
 
 
with open('input_1.csv', 'w') as fl:
 
    fields = deparment[0].keys()
    writer = csv.DictWriter(fl, fieldnames= fields )
 
    writer.writeheader()
 
    writer.writeheader(deparment)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2022, 14:12
Ответы с готовыми решениями:

Создайте словарь, связав его с переменной school, и наполните данными
создайте словарь, связав его с переменной school, и наполните данными, которые бы отражали количество учащихся в разных классах( 1а, 1б,...

Создайте словарь,связав его переменной school, и наполните его данными отражающими количество учащихся
Здравствуйте, очень нужен код к заданию, помогите пожалуйста 1.Создайте словарь, связав его переменной school, и наполните его данными...

Создать словарь, связав его с переменной factory, и заполните данными
1. Создать словарь, связав его с переменной factory, и заполните данными, которые бы отражали количество работников в разных отделах...

20
 Аватар для Semen-Semenich
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
30.08.2022, 19:36
что не понятно из этого?
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
31.08.2022, 11:34
Fun_lola,
Python
1
2
3
deparment = {"management department": 122,
              "police department": 77,
              "Department of Education": 33}
Добавлено через 2 минуты
Цитата Сообщение от Fun_lola Посмотреть сообщение
deparment["police department"] = -15 # в полицейском департаменте уволилось 15 сотрудников
а у вас стало -15 сотрудников

Добавлено через 58 секунд
Цитата Сообщение от Fun_lola Посмотреть сообщение
fields = deparment[0].keys()
Определитесь, deparment - словарь или список?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 11:43
Цитата Сообщение от Red white socks Посмотреть сообщение
Определитесь, deparment - словарь или список?
Список, в которм лежит один словарь.
Ну а што?
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
31.08.2022, 11:54
iSmokeJC, да кто ж против то? Тем более по коду автора такое и создается, пусть и криво. Но тогда выше надо к элементу списка обращаться.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 12:01
Red white socks, самая абасака - это то, что в данном, хм, словаре, все перезатирается. Кучка одинаковых ключей никого не смущает. И чего это ничего не считается?
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
31.08.2022, 12:11
iSmokeJC, тут ничего удивительного нет. Если видишь словарь в первый раз, то и не такое можно придумать. Поэтому просто показать в начале как надо.
1
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42
31.08.2022, 17:02  [ТС]
Цитата Сообщение от Red white socks Посмотреть сообщение
Определитесь, deparment - словарь или список?
словарь
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 17:06
Цитата Сообщение от Fun_lola Посмотреть сообщение
словарь
А ты в курсе, что в словаре ключи должны быть уникальными?

Добавлено через 1 минуту
Ради смеху, запусти
Python
1
2
3
4
deparment = {'deparment': "management department",'employees' : 122,
              'deparment': "police department", 'employees' : 77,
              'deparment': "Department of Education", 'employees': 33}
print(deparment)
0
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42
31.08.2022, 17:08  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
А ты в курсе, что в словаре ключи должны быть уникальными?
Да, у меня есть такой код от моего преподавателя, от него я и отталкивался

data_2 = [{'Company': "Cisco", 'Cash' : 37, 'Main haus' : 'London'},
{'Company': 'Hillel', 'Cash' : 23, 'Main haus' : 'Kyiv'},
{'Company': "Microsoft", 'Cash' : 3890, 'Main haus' : 'Redmond'},
{'Company': 'Samsung', 'Cash' : 3650, 'Main haus' : 'Seul'},
]
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 17:10
Fun_lola, теперь сравни код преподавателя и свой из первого поста

Добавлено через 15 секунд
Особое внимание на фигурные скобки

Добавлено через 1 минуту
Цитата Сообщение от Red white socks Посмотреть сообщение
Определитесь, deparment - словарь или список?
Цитата Сообщение от Fun_lola Посмотреть сообщение
словарь
А на деле выходит - список словарей. Что, впрочем, очевидно было
0
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42
31.08.2022, 18:32  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
А на деле выходит - список словарей. Что, впрочем, очевидно было
Для вас возможно и очевидно, а я только учусь и мое незнания в чем-то нормально
Спасибо за ваше указание на мою ошибку

Добавлено через 1 час 19 минут
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Особое внимание на фигурные скобки
Я обратил внимание на пример своего преподавателя и исправил свой не до словарь, остается только одна проблема как решить эту ошибку:

deparment[deparment] = 152 # в департаменте управления изменилось количество работников
TypeError: list indices must be integers or slices, not list

В этой части кода:


deparment["management department"] = 152 # в департаменте управления изменилось количество работников

deparment["police department"] = -15 # в полицейском департаменте уволилось 15 сотрудников

del deparment["Department of Education"] # департамент образовния был удален

print(f"Всего учеников в депортаменте: {sum(deparment.values())}") # Выводим на экран общее число сотрудников в департаменте
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 18:50
Цитата Сообщение от Fun_lola Посмотреть сообщение
как решить эту ошибку
Словарь должен быть как указал ув.Red white socks, в посте 3. И все станет на свои места

Добавлено через 6 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
departments = {"management department": 122,
               "police department": 77,
               "Department of Education": 33}
print(departments)
 
# в одном из департаментов изменилось количество работников
departments['management department'] -= 20
 
# в компании появился новый департамент
departments['new department'] = 50
 
# в компании был расформирован (удален) другой департамент
del departments['Department of Education']
 
print(departments)
 
# Вычислите общее количество сотрудников в компании.
total = 0
for key in departments.keys():
    total += departments[key]
#  total = sum(departments.values())
print(f'Всего народу: {total}')
Code
1
2
3
{'management department': 122, 'police department': 77, 'Department of Education': 33}
{'management department': 102, 'police department': 77, 'new department': 50}
Всего народу: 229
0
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42
31.08.2022, 18:55  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Словарь должен быть как указал ув.Red white socks, в посте 3. И все станет на свои места
Но у меня ещё есть условие в задании что нужно все это вывести в csv и тут возникает новая ошибка:

fields = deparment[0].keys()
KeyError: 0

Уже в этой части кода:

Python
1
2
3
4
5
6
7
8
9
with open('table_3.csv', 'w') as fl:
 
    fields = deparment[0].keys()
    writer = csv.DictWriter(fl, fieldnames= fields)
    # writeheader() - запись названия колонок в файл
    writer.writeheader()
 
    for d in deparment:
        writer.writerow(d)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 19:02
Ну а подумать маленько, не?
Цитата Сообщение от Fun_lola Посмотреть сообщение
Уже в этой части кода:
В этой части коды ты обращаешься к списку словарей. А поскольку мы его привели в Божеский вид, теперь это просто словарь. Т.о. индекс не нужен.
0
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42
31.08.2022, 19:21  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
В этой части коды ты обращаешься к списку словарей. А поскольку мы его привели в Божеский вид, теперь это просто словарь. Т.о. индекс не нужен.

Я очень извиняюсь за то что так туплю, но я все ещё не понимаю что нужно убрать...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 19:50
Цитата Сообщение от Fun_lola Посмотреть сообщение
что нужно убрать
Индекс!!!
0
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42
31.08.2022, 20:14  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Индекс!!!
Появились новые три строках который даже нету
Я удалял тогда индекс и появлялись эти же, поэтому и уточнил где он тот индекс который нужно удалить


Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\pythonPro ject5\main.py", line 24, in <module>
writer.writerow(d)
File "C:\Users\User\AppData\Local\Programs\Py thon\Python310\lib\csv.py", line 154, in writerow
return self.writer.writerow(self._dict_to_list( rowdict))
File "C:\Users\User\AppData\Local\Programs\Py thon\Python310\lib\csv.py", line 147, in _dict_to_list
wrong_fields = rowdict.keys() - self.fieldnames
AttributeError: 'str' object has no attribute 'keys'
Всего учеников в депортаменте: 137
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.08.2022, 20:59
На этом мои полномочия всё. Окончены.
Если каждую строчку кода методом научного тыка исправлять, вместо того чтоб почитать основы.
1
0 / 0 / 0
Регистрация: 06.08.2022
Сообщений: 42
31.08.2022, 21:03  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
На этом мои полномочия всё. Окончены.
Если каждую строчку кода методом научного тыка исправлять, вместо того чтоб почитать основы.
Все равно спасибо вам все, я уже сам додумался, без вас я бы не справился, спасибо

Одна строка исправила 3 ошибки

writer.writerow(deparment)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.08.2022, 21:03
Помогаю со студенческими работами здесь

Создайте словарь, связав его с переменной school , и наполните данными
Добрый день, помогите решить задачу. Решите задачу: создайте словарь, связав его с переменной school , и наполните данными, которые...

Создайте словарь, связав его с переменной school, и наполните данными, которые бы отражали количество учащихся в разных
Создайте словарь, связав его с переменной school, и наполните данными, которые бы отражали количество учащихся в разных классах (1а, 1б,...

Создайте словарь, связав его с переменной
Создайте словарь, связав его с переменной student, и наполните данными, которые бы отражали количество студентов в разных группах....

В файле input.txt хранится англо-русский словарь. Создать русско-английский словарь и сохранить его в отсортированном ви
пример input.txt apple – лесть, яблоко soap – лесть, мыло foam – мыло, пена output.txt лесть – apple, soap мыло – foam,...

Сделать словарь сравниваемый с переменной и выводящий словарь без ключей, меньше введенной переменной
Сделать словарь, имеющий в качестве ключей названия приложений и в качестве значений их вес. Пользователь указывает определённое...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru