форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
1.7 KiB
1.7 KiB
Индивидуальное контрольное задание.
Вариант 17
Разработайте функцию с двумя аргументами – списками. На их основе в функции должен создаваться словарь с ключами из первого списка и со значениями – натуральными логарифмами абсолютных значений соответствующих элементов из второго списка. Полученный словарь должен записываться в бинарный файл с именем Slovar.bin. Проверьте функцию на двух примерах с разными списками.
import math
import pickle
import os
def create_slovar(list1, list2, filename):
slovar = dict(zip(list1, [math.log(abs(x)) for x in list2]))
fp=open(os.getcwd()+ '/TEMA7/' + filename, 'wb')
pickle.dump(slovar, fp)
fp.close()
# Примеры использования функции
# Пример 1
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
create_slovar(list1, list2, 'Slovar.bin')
fp=open(os.getcwd()+ '/TEMA7/' + 'Slovar.bin', 'rb')
slovar = pickle.load(fp)
fp.close()
print('\nПример 1:', slovar)
# Пример 2
list3 = ['x', 'y', 'z']
list4 = [4, 25, -6]
create_slovar(list3, list4, 'Slovar.bin')
fp=open(os.getcwd()+ '/TEMA7/' + 'Slovar.bin', 'rb')
slovar = pickle.load(fp)
fp.close()
print('\nПример 2:', slovar)
Ответ программы:
Пример 1: {'a': 0.0, 'b': 0.6931471805599453, 'c': 1.0986122886681098}
Пример 2: {'x': 1.3862943611198906, 'y': 3.2188758248682006, 'z': 1.791759469228055}