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

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

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

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

# desicion of 1-st task
a = [1, 5, 8, 11, 3, 5, 4, 6]
b = [i ** 2 for i in a]
print(b)

# desicion of 2-nd task
a = ['banana', 'apple', 'mango', 'grapes', "friut1", 'friut3', 'fruit5']
b = ['friut3', 'fruit4', 'fruit5', 'banana', 'mango', 'grapes', "friut1", 'friut2', 'fruit6']
result = [i for i in (set(a) & set(b))]
print(result)

# desicion of 3-d task
import random

count = 100
a = [random.randint(-100, 100) for _ in range(count)]
# a = [3, 4, 8, -9, 9, 12, 15, -15] #для проверки
b = [i for i in a if i % 3 == 0 and i % 4 != 0 and i > 0]

print('Первичный произвольный список: ', a)
print('Список преобразованный, удовлетворяющий трем условиям: ', b)
