С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 06.06.2020
Сообщений: 75

Создание и обработка словарей

12.05.2022, 14:44. Показов 925. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста, помогите с решением.
Если что-то в условии Вам покажется странно написано, напишите об этом пожалуйста.
Задание переведено через deepl c немецкого на русский

Создайте список* всех номеров счетов, имя владельца которых начинается с Dr.
Ожидаемый результат: ['192.097', '192.104', '193.084'].

- Создайте новый словарь*, содержащий записи для всех счетов, для которых существует контактная информация. При этом создается новый словарь, содержащий только баланс и контактную информацию счета. Выведите словарь.

Ожидаемый результат:
{'192.104': {'balance': 10000, 'contact': 'who@tardis.net'},
'192.121': {'balance': 5000000, 'contact': 'office@dd.com'},
'191.124': {'balance': 42, 'contact': 'ad27@gmail.com'}}

- Завершить функцию
transfer(accounts: dict, source: str, target: str, amount: float) -> bool,
который на словаре счетов той же структуры, что и ex_accounts, выполняет следующее операция над словарем счетов той же структуры, что и ex_accounts: Если и источник, и цель являются существующими ключами в учетных записях баланс счета в источнике уменьшается на сумму, а в цели увеличивается на сумму и возвращается True. В противном случае возвращается значение False.
Допущения: сумма - число > 0, источник и цель - строки.

* Создавайте требуемое решение динамически, а не просто предоставляйте структуру данных. с фиксированными значениями для спецификации бетона. Поэтому убедитесь, что ваше решение также работает другие словари, которые имеют ту же структуру, что и ex_accounts, но содержат разные ключи и значения.
содержат другие ключи и значения.

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
51
52
53
54
# -*- coding: utf-8 -*-
import random
 
def exercise1() -> None:
 
    ex_accounts = {'192.097': {'owner': 'Dr. No', 'balance': 350000},
                   '193.075': {'owner': 'Drogo, Khal', 'balance': 200000},
                   '192.104': {'owner': 'Dr. Who', 'balance': 10000, 'contact': 'who@tardis.net'},
                   '192.121': {'owner': 'Dagobert Duck', 'balance': 500000000, 'contact': 'office@dd.com'},
                   '192.103': {'owner': 'Donald Duck', 'balance': -10000},
                   '191.124': {'owner': 'Dent, Arthur', 'balance': 42, 'contact': 'ad27@gmail.com'},
                   '193.084': {'owner': 'Dr. Dolittle', 'balance': 125}
                   }
 
    # Создайте и выведите список, содержащий номера счетов тех счетов, имя владельца которых начинается с 'Dr.'.
 
    # Ожидаемый результат: ['192.097', '192.104', '193.084'].
    # TODO: Решение здесь
 
    # Создайте и выведите новый словарь, который содержит словарь для всех аккаунтов с # контактной информацией.
    #, содержащий баланс счета и контактную информацию.
    # Ожидаемый результат:
    # {'192.104': {'balance': 10000, 'contact': 'who@tardis.net'},
    #  '192.121': {'balance': 500000000, 'contact': 'office@dd.com'},
    #  '191.124': {'balance': 42, 'contact': 'ad27@gmail.com'}}
     # TODO: Решение здесь
 
    # Примеры вызовов для transfer():
    print(transfer(ex_accounts, '192.097', '192.103', 100.01))  # should print True
    print(ex_accounts)  # balance of '192.097' is 349899.99, and of '192.103' is -9899.99, others remain unchanged
    print(transfer(ex_accounts, '192.098', '192.103', 100.01))  # should print False
    print(ex_accounts)  # should be unchanged to previous print
    print(transfer(ex_accounts, '192.097', '192.102', 100.01))  # should print False
    print(ex_accounts)  # should be unchanged to previous print
    print(transfer(ex_accounts, '191.124', '193.084', 2000))  # should print True
    print(ex_accounts)  # balance of '191.124' is -1958, balance of '193.084' is 2125, others remain unchanged
 
 
def transfer(accounts: dict, source: str, target: str, amount: float) -> bool:
  """
    Если источник и цель являются записями на счетах, то остаток на счете источника
    с исходным номером счета уменьшается на сумму, а счет с номером
    цель увеличивается на сумму и возвращается True. В противном случае возвращается False
    """
    # TODO: реализовать
    pass
 
def execute() -> None:
    exercise1()
   
 
 
if __name__ == '__main__':
    execute()
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2022, 14:44
Ответы с готовыми решениями:

Список словарей. Групповая обработка
Дорогие друзья, подтолкните новичка в нужном направлении, пож-та! Работаю со списками словарей и делаю простые вещи, например: ...

Динамическое создание новых словарей
Здравствуйте, такой вопрос: как можно сделать динамическое создание новых словарей? Т. е. как только 1 словарь созданный нами прекратил...

Поиск по списку словарей и вывод списка словарей
У меня есть список словарей, например: data= Как мне вывести этот список, чтобы каждый словарь был на каждой отдельной строке,...

2
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
12.05.2022, 15:46
Лучший ответ Сообщение было отмечено MelchiorxD как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
d = {
        '192.097': {'owner': 'Dr. No', 'balance': 350000},
        '193.075': {'owner': 'Drogo, Khal', 'balance': 200000},
        '192.104': {'owner': 'Dr. Who', 'balance': 10000, 'contact': 'who@tardis.net'},
        '192.121': {'owner': 'Dagobert Duck', 'balance': 500000000, 'contact': 'office@dd.com'},
        '192.103': {'owner': 'Donald Duck', 'balance': -10000},
        '191.124': {'owner': 'Dent, Arthur', 'balance': 42, 'contact': 'ad27@gmail.com'},
        '193.084': {'owner': 'Dr. Dolittle', 'balance': 125}
       }
lst = [i for i in d.keys() if d[i]['owner'].startswith('Dr.')]
print(lst)
 
dd = {}
for key in d.keys():
    if 'contact' in d[key].keys():
        dd[key] = {'balance': d[key]['balance'], 'contact': d[key]['contact']}
print(dd)
1
1 / 1 / 0
Регистрация: 06.06.2020
Сообщений: 75
12.05.2022, 20:39  [ТС]
Пифагор, благодарю, можете еще, пожалуйста, реализовать функцию transfer

Добавлено через 3 часа 35 минут
Пифагор, подскажите пожалуйста как исправить функцию transfer
Я попробовал сам её написать, но работает она не корректно
Python
1
2
3
4
5
6
7
def transfer(accounts: dict, source: str, target: str, amount: float) -> bool:
        if source not in accounts or target not in accounts:
            accounts[source] -= amount
            accounts[target] += amount
            return False
        else:
            return True
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2022, 20:39
Помогаю со студенческими работами здесь

Создание списка пустых словарей
61. Напишите программу на Python для создания списка пустых словарей.

Обработка словарей
Имею такую метод которые добавляет учащихся по критерию в список. Метод: def get_excellent_students(self): for student in...

Создание и обработки словарей
разработать программы создания и обработки словарей. 2. Найдите в Интернете валовой внутренний продукт (ВВП) на душу населения (по...

Создание и обработки словарей
3. Известный расписание уроков в пятницу в группе, фамилии учителей, которые проводят пары и место их проведения. Разработайте программу,...

Создание и обработки словарей
разработать программы создания и обработки словарей. 1. В аптеку поступили лекарства: валидол по цене 5 руб, креон - 123 руб, ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru