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

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

12.05.2022, 14:44. Показов 966. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru