Решение модуля 6.7 Инди-курс программирования на Python

Модуль 6.7 (Ситуации, где полезно использовать словарь). Словари часто используются для подсчета значений. При таком использовании ключами словаря будут объекты подсчета, а значение ключа – количество появлений этих объектов. 

Перед вами словарь workers

Ваша задача поднять зарплату Бреду до 8500 и затем вывести измененный словарь workers

workers = {
    'employer1': {'name': 'Jhon', 'salary': 7500},
    'employer2': {'name': 'Emma', 'salary': 8000},
    'employer3': {'name': 'Brad', 'salary': 500}
}

workers['employer3']['salary'] = 8500  # обращаемся сначало по ключу к брэду, затем к его зарплате и изменяем её
print(workers)                         # вывводим измененный словарь

Мы уже с вами подсчитывали сколько раз встречается число в списке при помощи метода подсчета. Там мы использовали список для хранения найденного количества

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

s = input().lower()     # получаем строку для подсчета букв и форматируем методом в нижний регистр
d = {}                  # создаем пустой словарь для добавления встречающихся букв и мих количества
for i in s:             # циклом проходимся по строке(берём каждую букву)
     if i.isalpha():    # проверяем если это буква, то проверяем встречалась ли она, если да то к количеству прибавляем 1, иначе добавлем в словарь
        d[i] = d.get(i, 0) + 1
print(d)                # выводим словарь с подсчитанным количеством букв

Во сколько обойдется данная покупка? Хотим купить все товары в указанном количестве

supermarket = {
    "milk": {"quantity": 20, "price": 1.19},
    "biscuits": {"quantity": 32, "price": 1.45},
    "butter": {"quantity": 20, "price": 2.29},
    "cheese": {"quantity": 15, "price": 1.90},
    "bread": {"quantity": 15, "price": 2.59},
    "cookies": {"quantity": 20, "price": 4.99},
    "yogurt": {"quantity": 18, "price": 3.65},
    "apples": {"quantity": 35, "price": 3.15},
    "oranges": {"quantity": 40, "price": 0.99},
    "bananas": {"quantity": 23, "price": 1.29}
}

Укажите ниже, какую итоговую сумму необходимо будет заплатить

528.37

Cтрока S1 называется анаграммой строки S2, если она получается из S2 перестановкой символов.

Программа получает на вход две строки S1 и S2. Если строка S1 является анаграммой строки S2 нужно вывести YES, в противном случае — NO

s = input().lower()     # получаем строку для подсчета букв и форматируем методом в нижний регистр
d = {}                  # создаем пустой словарь для добавления встречающихся букв и мих количества
for i in s:             # циклом проходимся по строке(берём каждую букву)
     if i.isalpha():    # проверяем если это буква, то проверяем встречалась ли она, если да то к количеству прибавляем 1, иначе добавлем в словарь
        d[i] = d.get(i, 0) + 1
s2 = input().lower()    # получаем вторую строку для подсчета букв и форматируем методом в нижний регистр
d2 = {}                 # создаем пустой словарь для добавления встречающихся букв и мих количества
for i in s2:            # циклом проходимся по строке(берём каждую букву)
     if i.isalpha():    # проверяем если это буква, то проверяем встречалась ли она, если да то к количеству прибавляем 1, иначе добавлем в словарь
        d2[i] = d2.get(i, 0) + 1
if d == d2:             # проверяем равны ли словари с буквами и их количества двух строк. Если они равны, то выводим YES, иначе NO
    print('YES')
else:
    print('NO')

Вам дан английский текст. Закодируйте его с помощью азбуки Морзе.Каждая буква заменяется на последовательность точек и тире. В качестве тире используйте обычный дефис: «-», а в качестве точки — точку «.». Например, буква «g» превратится в трёхсимвольную строку «—.». Ниже в переменной morze для вашего удобства хранится словарь соответствия английских букв коду Морзе. 

morze = {'a': '•—', 'b': '—•••', 'c': '—•—•', 'd': '—••',
         'e': '•', 'f': '••—•', 'g': '——•', 'h': '••••',
         'i': '••', 'j': '•———', 'k': '—•—', 'l': '•—••',
         'm': '——', 'n': '—•', 'o': '———', 'p': '•——•',
         'q': '——•—', 'r': '•—•', 's': '•••', 't': '—',
         'u': '••—', 'v': '•••—', 'w': '•——', 'x': '—••—',
         'y': '—•——', 'z': '——••'}

text = input().lower().split()   # получаем строку для кодировки и опускаем в нижний регистр т.к. и строчные и заглавные кодируются одинаково и разбиваем на список по словам
for i in text:                   # проходимся по списку со словами
    for j in i:                  # проходимся по буквам слова
        print(morze[j], end=' ') # обращаемся к словарю буквой в качестве ключа и выводим шифр этой буквы
    print()                      # после каждой буквы переходим на новую строку

На основании переменной persons, в которой хранится список кортежей, в каждом кортеже хранится имя, зарплата, пол и паспорт человека.

Ваша задача создать словарь, где ключами будут имена, а значениями словарь из трех ключей: salarygender и passport

К примеру, если у вас есть изначально следующий список

[
    ('Bob Moore', 330000, 'M', '1635777202'),
    ('Gina Moore', 12500, 'F', '1639999999'),
]

то из него должен получится следующий словарь

{
    'Bob Moore': {
        'salary': 330000,
        'gender': 'M',
        'passport': '1635777202'
    },
    'Gina Moore': {
        'salary': 12500,
        'gender': 'F',
        'passport': '1639999999'
    }
}

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

persons= [
    ('Allison Hill', 334053, 'M', '1635644202'),
    ('Megan Mcclain', 191161, 'F', '2101101595'),
    ('Brandon Hall', 731262, 'M', '6054749119'), 
    ('Michelle Miles', 539898, 'M', '1355368461'),
    ('Donald Booth', 895667, 'M', '7736670978'), 
    ('Gina Moore', 900581, 'F', '7018476624'),
    ('James Howard', 460663, 'F', '5461900982'), 
    ('Monica Herrera', 496922, 'M', '2955495768'),
    ('Sandra Montgomery', 479201, 'M', '5111859731'), 
    ('Amber Perez', 403445, 'M', '0602870126')
]

data = {}             # создаем пустой список для добавления туда элементов словаря - данные о людях
for i in persons:     # проходимя по списку и берём каждый кортеж
    data[i[0]] = {'salary': i[1], 'gender': i[2], 'passport': i[3]}    # в качестве ключа берем первое значение из кортежа - имя и фамилия, а в значение записываем словарь с данными

В этой задаче вам предстоит достать определенные данные из словаря data. Он уже будет определен и заполнен данными, поэтому никакого ввода значений в это программе делать не нужно, просто обращаетесь к переменной data

У словаря data следующая структура ключей, хорошо рассмотрите ее.

{
  "my_friends": {
    "count": ...,
    "people": [
      {
        "first_name": value,
        "id": value,
        "last_name": value,
      },
      {
        "first_name": value,
        "id": value,
        "last_name": value,
      }, 
      ......
    ]
  }
}

Ваша задача получить значения ключа first_name у всех элементов и вывести их в алфавитном порядке, каждое имя с новой строки

P.S. Чтобы посмотреть содержимое словаря data воспользуйтесь следующим кодом:

from pprint import pprint
pprint(data)
data = {
    "my_friends": {
        "count": 10,
        "people": [{
            "first_name": "Kurt",
            "id": 621547005,
            "last_name": "Cobain",
            "bdate": "31.8.2005"
        }, {
            "first_name": "Виолетта",
            "id": 484200150,
            "last_name": "Кастилио",
        }, {
            "first_name": "Иринка",
            "id": 21886133,
            "last_name": "Бушуева",
            "bdate": "28.8.1942"
        }, {
            "first_name": "Данил",
            "id": 282456573,
            "last_name": "Греков",
            "bdate": "4.7.2002"
        }, {
            "first_name": "Валентин",
            "id": 184902932,
            "last_name": "Долматов",
            "bdate": "25.5"
        }, {
            "first_name": "Евгений",
            "id": 620469646,
            "last_name": "Шапорин",
            "bdate": "6.12.1982"
        }, {
            "first_name": "Ангелина",
            "id": 622328862,
            "last_name": "Краснова",
            "bdate": "4.11.1995"
        }, {
            "first_name": "Иван",
            "id": 576015198,
            "last_name": "Вирин",
            "bdate": "2.2.1915"
        }, {
            "first_name": "Паша",
            "id": 386922406,
            "last_name": "Воронов",
            "bdate": "27.9"
        }, {
            "first_name": "Ольга",
            "id": 622170942,
            "last_name": "Савченкова",
            "bdate": "20.12"
        }]
    }
}

sp = []
#    циклом проходимся по списку(в котором хранятся словари), который является значением при обращении к словарю data по ключу my_friends затем в нем обращаемся к ключу people 
for i in data['my_friends']['people']: 
    sp.append(i['first_name'])    # так как i - каждую итерацию это словарь, то добавляем в наш список значение этого словаря по ключу first_name

print(*sorted(sp), sep='\n')      # выводим полученный список распаковав и отсортировав (каждое значение на новой строчке)

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x