Exercice 1
Compléter les fonctions suivantes pour qu’elles respectent leur docstring :
def fusion(liste1,liste2):
'''
>>>fusion([1,2,3],[5,6,7,8])
[1,5,2,6,3,7,8]
>>>fusion([5,6,7,8],[1,2,3])
[5,1,6,2,7,3,8]
'''
def rangement(liste):
'''
range une liste contenant des 0 et des 1
en plaçant les 0 en premier puis les 1
>>>rangement([1,0,0,0,1]
[0,0,0,1,1]
'''
def decalage(liste):
'''
décale tous les elts d'une liste
le dernier devenant le premier
>>>decale([1,2,3,4])
[4,1,2,3]
>>>decale([4,1,2,3])
[3,4,1,2]
'''
def permutation(liste,index1,index2):
'''
permute les elts d'index 1 et 2
d'une liste
>>>permutation([1,2,3,4],1,3)
[1,4,3,2]
>>>permutation([1,2,3,4],0,2)
[3,2,1,4]
'''
correction
def fusion(l1,l2):
'''
>>>fusion([1,2,3],[5,6,7,8])
[1,5,2,6,3,7,8]
>>>fusion([5,6,7,8],[1,2,3])
[5,1,6,2,7,3,8]
'''
liste=[]
while len(l1)!=0 or len(l2)!=0:
if len(l1)!=0:
liste.append(l1.pop(0))
if len(l2)!=0:
liste.append(l2.pop(0))
return liste
def rangement(liste):
'''
range une liste contenant des 0 et des 1
en plaçant les 0 en premier puis les 1
>>>rangement([1,0,0,0,1])
[0,0,0,1,1]
'''
# solution 1 : return sorted(liste)
# solution2 :return [0]*liste.count(0)+[1]*liste.count(1)
liste_rangee=[]
for val in liste:
if val==1:
liste_rangee.append(1)
if val==0:
liste_rangee.insert(0,0)
return liste_rangee
def decale(liste):
'''
décale tous les elts d'une liste
le dernier devenant le premier
>>>decale([1,2,3,4])
[4,1,2,3]
>>>decale([4,1,2,3])
[3,4,1,2]
'''
return [liste.pop()]+liste