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

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

29.08.2022, 14:12. Показов 2096. Ответов 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
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru