Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

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}