#!/usr/bin/python3
#Lits 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)
         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 polaplasiasmou
         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("Δώσε 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])
         #Λίστες και τυχαίοι αριθμοί
         numlist=[random.randint(1,100) for _ in range(n)]
         print ("Λίστα:",numlist)
         print("Sum=",sum(numlist))
         print ("Average=",sum(numlist)/len(numlist))
if __name__=="__main__":
         main()
