#!/user/bin/python3
#List Comprehensions
import random 
def main():
	ml=[]
	for i in range(10):
		ml.append(i)
	print(*ml)
	ml=[i for i in range(10)]
	sq=[x**2 for x in range(1,11)]
	print (f'List sq len={len(sq)}')
	for el in sq:
		print(el, end=',')
	print("")
	print(*sq)
	
	"""
	x**2  
	x/2  ->float
	x//2 ->int
	x%2 ->modulo

	"""
	#filtrarisma listas
	ml=[i for i in range(100)]
	even_num[x for x in  ml if x%2==0]
	print (even_num)
	#tomi liston
	list1=[1,2,3,4]
	list2=[3,4,5,6]
	tomi=[x for x in list1 if x in list2]
	print (tomi)
	#list me tuples
	sqt=[(1,2),(2,3),(3,4)]
	print(sqt)
	print(sqt[0])
	print((sqt[0]) [0])
	#2D lists
	sqtn=[[1,2],[2,3],[3,4]]
	print (sqtn[0][1])
	print (f'shape=({len(sqtn)},{len(sqtn[0]})')
	#anastrofi listas 
	original=[1,2,3,4,5]
	slice=original[0:2]
	print(slice)
	rev=original[::-1]
	print(rev)
	#pinakas pollaplasiasmoy
	mul_tab=[[i*j for j in range (1,4)] for i in range (1,4)]
	print (mul_tab)
	#pinakas nxn me midenika
	my_ml=None
	n=None
	try:
		n=input("dose n :")
		n=int(n) 
		my_ml=[[0 for _ in range(n)] for _ in range (n)]
	except Exception as e :
		print("exception:"+str(e))
	print (my_ml)
	#3D
	cube=[[[ 1 for _ in range(3)] for _ in range (n) ]
		for _ in range (n)]
	print(cube)
	print (cube[0][0])
	#lsites kai tuxaioi arithmoi
	numlist=[random.randint(1,100) for _ in range(n)]
	print ("lista :",numlist )
	print ("sum=",sum(sumlist))
	print ("average=",sum(numlist)/len(numlist))
	
	
	


if__name__=="__main__":
	main()

