|
@@ -0,0 +1,151 @@
|
|
|
+
|
|
|
+from itertools import zip_longest
|
|
|
+
|
|
|
+def test_zip():
|
|
|
+ a = [1, 4, 3, 5]
|
|
|
+ b = [123, 323, 543, 234]
|
|
|
+ c = 'asdf'
|
|
|
+
|
|
|
+ # for i in range(4):
|
|
|
+ # print(a[i], b[i])
|
|
|
+
|
|
|
+ res = zip(a, b, c)
|
|
|
+
|
|
|
+ col1, col2, col3 = zip(*res)
|
|
|
+
|
|
|
+ print(col1, col2, col3)
|
|
|
+
|
|
|
+ for i in res:
|
|
|
+ print(i)
|
|
|
+
|
|
|
+def test_1():
|
|
|
+ x = [1, 2, 3]
|
|
|
+ y = [4, 5, 6]
|
|
|
+ zipped = zip(x, y, strict=True)
|
|
|
+ result = list(zipped)
|
|
|
+ print(result)
|
|
|
+
|
|
|
+# test_1()
|
|
|
+
|
|
|
+
|
|
|
+def zip_longest_test():
|
|
|
+ ids = [1, 2, 3, 4]
|
|
|
+ leaders = ['Elon Mask', 'Tim Cook', 'Bill Gates', 'Yang Zhou']
|
|
|
+ countries = ('Australia', 'USA')
|
|
|
+ records = zip_longest(ids, leaders, countries)
|
|
|
+
|
|
|
+ print(list(records))
|
|
|
+
|
|
|
+ records_2 = zip_longest(ids, leaders, countries, fillvalue='Unknown')
|
|
|
+ print(list(records_2))
|
|
|
+
|
|
|
+
|
|
|
+def unzip_test():
|
|
|
+ record = [(1, 'Elon Mask', 'Australia'),
|
|
|
+ (2, 'Tim Cook', 'USA'),
|
|
|
+ (3, 'Bill Gates', 'USA'),
|
|
|
+ (4, 'Yang Zhou', 'China')]
|
|
|
+ ids, leaders, countries = zip(*record)
|
|
|
+ print(ids)
|
|
|
+ print(leaders)
|
|
|
+ print(countries)
|
|
|
+
|
|
|
+# unzip_test()
|
|
|
+
|
|
|
+def zip_iter_1():
|
|
|
+ employee_numbers = [2, 9, 18, 28]
|
|
|
+ employee_names = ["Valentin", "Leonti", "Andrew", "Sasha"]
|
|
|
+ salaries = (100, 200, 3000, 450)
|
|
|
+
|
|
|
+ for name, number, salary in zip(employee_names, employee_numbers, salaries):
|
|
|
+ print(name, number, salary)
|
|
|
+
|
|
|
+# zip_iter_1()
|
|
|
+
|
|
|
+def zip_dict():
|
|
|
+ dict_one = {'name': 'John', 'last_name': 'Doe', 'job': 'Python Consultant'}
|
|
|
+ dict_two = {'name': 'Jane', 'last_name': 'Doe', 'job': 'Community Manager'}
|
|
|
+ for (k1, v1), (k2, v2) in zip(dict_one.items(), dict_two.items()):
|
|
|
+ print(k1, '->', v1)
|
|
|
+ print(k2, '->', v2)
|
|
|
+
|
|
|
+# zip_dict()
|
|
|
+
|
|
|
+def creat_dict():
|
|
|
+ employee_numbers = [2, 9, 18]
|
|
|
+ employee_names = ["Valentin", "Leonti", "Andrew"]
|
|
|
+
|
|
|
+ numbers = dict(zip(employee_numbers, employee_names))
|
|
|
+ employees = dict(zip(employee_names, employee_numbers))
|
|
|
+
|
|
|
+ print(numbers)
|
|
|
+ print('------')
|
|
|
+ print(employees)
|
|
|
+
|
|
|
+
|
|
|
+ # обновляе словаря
|
|
|
+ other_num = [50, 63]
|
|
|
+ other_names = ['Misha', 'Sergey']
|
|
|
+ numbers.update(zip(other_num, other_names))
|
|
|
+ print('------')
|
|
|
+ print(numbers)
|
|
|
+
|
|
|
+# creat_dict()
|
|
|
+
|
|
|
+def zip_comp():
|
|
|
+ employee_numbers = [2, 9, 18]
|
|
|
+ employee_names = ["Valentin", "Leonti", "Andrew"]
|
|
|
+
|
|
|
+ numbers = {num: name for num, name in zip(employee_numbers, employee_names)}
|
|
|
+ names = [name[0]*num for num, name in zip(employee_numbers, employee_names)]
|
|
|
+ print(numbers)
|
|
|
+ print(names)
|
|
|
+
|
|
|
+# zip_comp()
|
|
|
+
|
|
|
+def zip_matrix():
|
|
|
+ matrix = [[1, 2, 3, 4], [5, 6, 7, 8]]
|
|
|
+ matrix_trans = [list(i) for i in zip(*matrix)]
|
|
|
+ print(matrix_trans)
|
|
|
+
|
|
|
+# zip_matrix()
|
|
|
+
|
|
|
+def task_1():
|
|
|
+ keys = ['Ten', 'Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety', 'One hundred']
|
|
|
+ values = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
|
|
|
+ result = dict(zip(keys, values))
|
|
|
+ print(result)
|
|
|
+
|
|
|
+# task_1()
|
|
|
+
|
|
|
+def task_2():
|
|
|
+ employees = ['Pankratiy', 'Innokentiy', 'Anfisa', 'Yaroslava', 'Veniamin',
|
|
|
+ 'Leonti', 'Daniil', 'Mishka', 'Lidochka',
|
|
|
+ 'Terenti', 'Vladik', 'Svetka', 'Maks', 'Yura', 'Sergei']
|
|
|
+ identifiers = [77, 48, 88, 85, 76, 81, 62, 43, 5, 56, 17, 20, 37, 32, 96]
|
|
|
+
|
|
|
+ # employees_data = dict(zip(identifiers, employees))
|
|
|
+ employees_data = dict(zip(sorted(identifiers), sorted(employees)))
|
|
|
+ print(employees_data)
|
|
|
+
|
|
|
+# task_2()
|
|
|
+
|
|
|
+
|
|
|
+def combine_strings(a: str, b: str) -> str:
|
|
|
+ return a + b
|
|
|
+
|
|
|
+def get_sum_two_numbers(a: int, b: int) -> int:
|
|
|
+ return a + b
|
|
|
+
|
|
|
+def get_sum_three_numbers(a: int, b: int, c: int) -> int:
|
|
|
+ return a + b + c
|
|
|
+
|
|
|
+def zip_with_function(list_data, f):
|
|
|
+ combined_list = list(zip(*list_data))
|
|
|
+ combined_list = list(map(lambda args: f(*args), combined_list))
|
|
|
+ return combined_list
|
|
|
+
|
|
|
+
|
|
|
+# zip_with_function([[1, 2, 3], [4, 5, 6], [7, 8, 9]], get_sum_three_numbers)
|
|
|
+# zip_with_function([[1, 2, 4], [3, 5, 8]], get_sum_two_numbers)
|
|
|
+
|