# 4.1.	Tableau = liste
ma_liste_vide = []
ma_liste_taille_1 = ["je suis le premier d'indice 0"]
ma_liste_taille_n = [1, "deux", True, 3.14]
print("Deuxième élément de la liste de taille n :", ma_liste_taille_n[1])	#affiche Deuxième élément de la liste de taille n : deux

# Initialisation
board = []
for line in range(3) :
	board.append([])
	for col in range(3) :
		board[line].append(0)
# Affichage
for line in board :
	for col in line :
		print(col, end=" ")
	print()

# 4.1.1.	Parcours
ma_liste = [-2, 3, 11]
for x in ma_liste :
	print(x, end=" ")	# -2 3 11
print()				# simple saut de ligne pour l'affichage
for i,x in enumerate(ma_liste) :
	print("Element",i,":",  end=" ")	# Element 0 : -2 Element 1 : 3 Element 2 : 11
print()
for i in range(3): 	# 3 étant la taille de liste
	print(ma_liste[i], end=" ")	# -2 3 11
print()	

ma_liste = [-2, 3, 11] 
mon_autre_liste = ['a','b']

for x, y in zip(ma_liste, mon_autre_liste) :
	print(x,"-", y, end=" ")	# -2 - a 3 -b
print()

# 4.1.2.	Opérations sur les listes
ma_liste = [-2, 3, 11] 
print(ma_liste)	# [-2, 3 ,11]
print("Taille de ma liste", len(ma_liste))	# 3
print("Minimum de ma liste", min(ma_liste))	# -2
print("Indice de l'élément de la valeur 11", ma_liste.index(11))	# 2
ma_liste.append(1)
print(ma_liste)	# [-2, 3 ,11, 1]
ma_liste.insert(1, 42)
print(ma_liste)	# [-2, 42, 3 ,11, 1]
ma_liste.sort()
print(ma_liste)	# [-2, 1, 3 , 11, 42]
ma_liste.clear()
print(ma_liste)	# []

# 4.1.3.	Copie
ma_liste = [-2, 3, 11] 
ma_copie = ma_liste
ma_liste.append(1)
print(ma_liste, "vs", ma_copie)	# [-2, 3, 11, 1] vs [-2, 3, 11, 1]
ma_copie.clear()
print(ma_liste, "vs", ma_copie)	# [] vs []


# fonction copy
ma_copie_separee = ma_liste.copy()
# fonction list
ma_deuxieme_copie = list(ma_liste)
# Etendre une liste vide avec la liste à copier
ma_troisieme_copie = []
ma_troisieme_copie.extend(ma_liste)
ma_liste.append(1)
print(ma_liste, "vs", ma_copie_separee)	# [-2, 3, 11, 1] vs [-2, 3, 11]
print(ma_liste, "vs", ma_deuxieme_copie)	# [-2, 3, 11, 1] vs [-2, 3, 11]
print(ma_liste, "vs", ma_troisieme_copie)	# [-2, 3, 11, 1] vs [-2, 3, 11]

# 4.1.4.	Pour aller plus loin : l'intention
l = []
for i in range(10) :
	l.append(i)

l = [i for i in range(10)]
print(l)		# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l_pair = [i for i in range(10) if i % 2 == 0]
print(l_pair)		# [0, 2, 4, 6, 8]

l_carre_pair = [i**2 for i in range(10) if i % 2 == 0]
print(l_carre_pair)		# [0, 4, 16, 36, 64]

# 4.2.	Tuple
mon_tuple = (1, 'a', 8)
print(mon_tuple[1])	# a
print(len(mon_tuple))	# 3
# mon_tuple.append(5)	# erreur arrêt du script

# 4.3.1.	Listes et tuples
ma_liste = ma_liste[-1::-1]

ma_liste = [-2, 3, 11, 2, 0, 11] 
print(ma_liste[-1::-1])		# [11, 0, 2, 11, 3, -2]
print(ma_liste[1::])		# [3, 11, 2, 0, 11]
print(ma_liste[1::2])		# [3, 2, 11]
print(ma_liste[::2])		# [-2, 11, 0]

#4.3.2.	Retour sur les strings
str1 = "toto"
lg= len(str1)			
print(lg) 			# 4
str1 += 's'			
print(str1) 			# totos
str1 *= 4			#
print(str1) 			# totostotostotostotos
print(str1[0], str1[-1])		# t s
print(str1[0:3], str1[0:6:2])	# tot tts

# 4.4.1.	Déclaration et accès
mon_dico = {}	
mon_dico['computer'] = 'ordinateur'
mon_dico['mouse'] = 'souris'
mon_dico['keyboard'] = 'clavier'
print(mon_dico['computer'])		# ordinateur

# 4.4.2.	Opérations
mon_dico = {}	
mon_dico['computer'] = 'ordinateur'
mon_dico['mouse'] = 'souris'
mon_dico['keyboard'] = 'clavier'
print(mon_dico['computer'])		# ordinateur
print("Entrez le mot en anglais")
eng = input()
if eng not in mon_dico :
	mon_dico[eng] = input("Entrez sa traduction en français")
else :
	print("Le mot", eng," a déjà une traduction")
# 4.4.3.	Parcours
mon_dico = {}	
mon_dico['computer'] = 'ordinateur'
mon_dico['mouse'] = 'souris'
mon_dico['keyboard'] = 'clavier'
# clé simple
for key in mon_dico :
	print(key, ":", mon_dico[key])
# avec l'opération keys()
for key in mon_dico.keys() :
	print(key, ":", mon_dico[key])
#avec l'opération items()
for key, value in mon_dico.items() :
	print(key, ":", value)

# 4.4.4.	Pour aller plus loin : l'intention
lettres = {chr(i+64):i for i in range(1,6)}
print(lettres) 		# {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}
