форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
46 строки
1.7 KiB
Markdown
46 строки
1.7 KiB
Markdown
# Индивидуальное контрольное задание.
|
|
|
|
***Вариант 17***
|
|
|
|
>Разработайте функцию с двумя аргументами – списками. На их основе в функции должен создаваться словарь с ключами из первого списка и со значениями – натуральными логарифмами абсолютных значений соответствующих элементов из второго списка. Полученный словарь должен записываться в бинарный файл с именем Slovar.bin. Проверьте функцию на двух примерах с разными списками.
|
|
|
|
```python
|
|
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)
|
|
```
|
|
|
|
Ответ программы:
|
|
```shell
|
|
Пример 1: {'a': 0.0, 'b': 0.6931471805599453, 'c': 1.0986122886681098}
|
|
|
|
Пример 2: {'x': 1.3862943611198906, 'y': 3.2188758248682006, 'z': 1.791759469228055}
|
|
``` |