Дан словарь с названиями разных рептилий:
rept = {"python" : " питон",
"anaconda" : "анаконда",
"tortoize" : " черепаха" }
Добавьте в словарь пару "snake" - " змея".
Исправьте ключ "tortoize" на правильный "tortoise".
Выведите на экран сообщения вида
Питон по-английски будет python.
для всех слов в словаре (сообщение для каждого слова ‒ с новой строчки).
# 1
rept["snake"] = "змея"
# 2
del rept["tortoize"] # удаляем запись с неправильным ключом
rept["tortoise"] = "черепаха" # добавляем с правильным
# проверяем
print(rept)
{'python': ' питон', 'anaconda': 'анаконда', 'snake': 'змея', 'tortoise': 'черепаха'}
# 3
for k, v in rept.items():
print(f"{v.strip().capitalize()} по-английски будет {k}.")
Питон по-английски будет python. Анаконда по-английски будет anaconda. Змея по-английски будет snake. Черепаха по-английски будет tortoise.
В списке cnt
хранятся названия стран, а в списке fh
– значения индекса Freedom House для этих стран. Создайте словарь, используя в качестве ключей названия стран, а в качестве значений – значения индекса.
cnt = ["Andorra", "Belarus", "Denmark",
"Kenya", "Jamaica", "Romania"]
fh = [1.0, 6.0, 1.0, 4.0, 2.5, 2.0]
data = dict(zip(cnt, fh))
print(data)
{'Andorra': 1.0, 'Belarus': 6.0, 'Denmark': 1.0, 'Kenya': 4.0, 'Jamaica': 2.5, 'Romania': 2.0}
Дан список, состоящий из пар чисел:
pairs = [(2, 4), (4, 6), (0, 1), (5, 2), (9, 1), (3, 8)]
Создайте словарь calc
, где ключами являются пары чисел, а значениями – их произведение (произведение тоже должно считаться в Python, не в уме).
calc = {}
for p in pairs:
calc[p] = p[0] * p[1]
print(calc)
{(2, 4): 8, (4, 6): 24, (0, 1): 0, (5, 2): 10, (9, 1): 9, (3, 8): 24}
Обратите внимание: если бы pairs
был списком списков, то ничего бы не получилось – как мы обсуждали, изменяемые объекты не могут быть ключами в словаре.
pairs2 = [[2, 4], [4, 6], [0, 1], [5, 2], [9, 1], [3, 8]]
calc = {}
# не сработает, список – изменяемый
for p in pairs2:
calc[p] = p[0] * p[1]
print(calc)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-10-0325e32c443c> in <module> 4 # не сработает, список – изменяемый 5 for p in pairs2: ----> 6 calc[p] = p[0] * p[1] 7 print(calc) TypeError: unhashable type: 'list'
Дан словарь grades
с оценками студентов за контрольную работу в 5-балльной шкале. Напишите код, который сделает следующее:
excel
.good
.satisf
.bad
.grades = {'Anna': 4, 'Bob': 3, 'Claire': 5, 'Dick': 2, 'Elena': 5,
'Fred': 5, 'George': 4, 'Kristina': 3, 'Nick': 2,
'Ursula': 4, 'Viktor': 5}
# решение 1
excel, good, satisf, bad = [], [], [], []
for name, grade in grades.items():
print(name, grade)
if grade == 5:
excel.append(name)
if grade == 4:
good.append(name)
if grade == 3:
satisf.append(name)
if grade == 2:
bad.append(name)
Anna 4 Bob 3 Claire 5 Dick 2 Elena 5 Fred 5 George 4 Kristina 3 Nick 2 Ursula 4 Viktor 5
print(excel, good, satisf, bad)
['Claire', 'Elena', 'Fred', 'Viktor'] ['Anna', 'George', 'Ursula'] ['Bob', 'Kristina'] ['Dick', 'Nick']
# решение 2 – с elif
excel, good, satisf, bad = [], [], [], []
for name, grade in grades.items():
print(name, grade)
if grade == 5:
excel.append(name)
elif grade == 4:
good.append(name)
elif grade == 3:
satisf.append(name)
else:
bad.append(name)
print(excel, good, satisf, bad)
Anna 4 Bob 3 Claire 5 Dick 2 Elena 5 Fred 5 George 4 Kristina 3 Nick 2 Ursula 4 Viktor 5 ['Claire', 'Elena', 'Fred', 'Viktor'] ['Anna', 'George', 'Ursula'] ['Bob', 'Kristina'] ['Dick', 'Nick']
# решение 3 – без .items()
excel, good, satisf, bad = [], [], [], []
for name in grades:
print(name, grades[name])
if grades[name] == 5:
excel.append(name)
elif grades[name] == 4:
good.append(name)
elif grades[name] == 3:
satisf.append(name)
else:
bad.append(name)
print(excel, good, satisf, bad)
Anna 4 Bob 3 Claire 5 Dick 2 Elena 5 Fred 5 George 4 Kristina 3 Nick 2 Ursula 4 Viktor 5 ['Claire', 'Elena', 'Fred', 'Viktor'] ['Anna', 'George', 'Ursula'] ['Bob', 'Kristina'] ['Dick', 'Nick']