__author__ = 'Крымов Иван'

# Все задачи текущего блока решите с помощью генераторов списков!

# Задание-1:
# Дан список, заполненный произвольными целыми числами. 
# Получить новый список, элементы которого будут
# квадратами элементов исходного списка
# [1, 2, 4, 0] --> [1, 4, 16, 0]

print()
old_ls = [1, 2, 4, 0]
new_ls = []
for el in old_ls:
    new_ls.append(el ** 2)
print("Список элементов для операций: ", old_ls)
print("Квадраты элементов этого списка:", new_ls)

# Задание-2:
# Даны два списка фруктов.
# Получить список фруктов, присутствующих в обоих исходных списках.

print()
first_fruit_list = ['банан', 'папая', 'персик', 'абрикос', 'яблоко']
second_fruit_list = ['яблоко', 'киви', 'ананас', 'персик', 'апельсин']
dublicates_list = [fruit for fruit in first_fruit_list if fruit in second_fruit_list]
print(dublicates_list)

# Задание-3:
# Дан список, заполненный произвольными числами.
# Получить список из элементов исходного, удовлетворяющих следующим условиям:
# + Элемент кратен 3
# + Элемент положительный
# + Элемент не кратен 4

print()
list = [1, 2, 3, 4, 5, 6, 7, -8, 9, 21]
new_list = [el for el in list if (el % 3) & (el > 0) & (el % 4 != 0)]
print(f"Элементы, кратеные 3, больше нуля и не кратные 4, списка: {list} это: {new_list}")
