Dictionnaire et fusion

.

Exercice N°1 :

Enoncé

L’occurrence d’un caractère dans un phrase est le nombre de fois où ce caractère est
présent.
Exemples :
· l’occurrence du caractère ‘o’ dans ‘bonjour’ est 2 ;
· l’occurrence du caractère ‘b’ dans ‘Bébé’ est 1 ;
· l’occurrence du caractère ‘B’ dans ‘Bébé’ est 1 ;
· l’occurrence du caractère ‘ ‘ dans ‘Hello world !’ est 2.
On cherche les occurrences des caractères dans une phrase. On souhaite stocker ces
occurrences dans un dictionnaire dont les clefs seraient les caractères de la phrase et
les valeurs l’occurrence de ces caractères.
Par exemple : avec la phrase 'Hello world !' le dictionnaire est le suivant :
{'H': 1,'e': 1,'l': 3,'o': 2,' ': 2,'w': 1,'r': 1,'d': 1,'!': 1}
(l’ordre des clefs n’ayant pas d’importance).
Écrire une fonction occurence_lettres avec prenant comme paramètre une variable
phrase de type str. Cette fonction doit renvoyer un dictionnaire de type constitué des
occurrences des caractères présents dans la phrase.

REPONSE

REPONSE

phrase="Hello world !"

def occurrence_lettres(phrase):

    un,deux=[],[]

    while len(phrase)>0:

        a=phrase[0]

        b=1

        temp=''

        for i in range(1,len(phrase)):

            if phrase[i]==a:

                b=b+1

            if phrase[i]!=a:

                temp=temp+phrase[i]

        phrase=temp

        un.append(a)

        deux.append(b)

    dict={un[j]: deux[j] for j in range((deux))

    return dict

Il faut utiliser idle et copier la commande ci-dessous et appuyer sur entrée

>>> occurrence_lettres(phrase)

{'H': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 2, 'w': 1, 'r': 1, 'd': 1, '!': 1}

.

Exercice N°2 :

Enoncé : Code

La fonction fusion prend deux listes L1,L2 d’entiers triées par ordre croissant et les
fusionne en une liste triée L12 qu’elle renvoie.
Le code Python de la fonction est

 

def fusion(L1,L2):

    n1 = len(L1)

    n2 = len(L2)

    L12 = [0]*(n1+n2)

    i1 = 0

    i2 = 0

    i = 0

    while i1 < n1 and ... :

            if L1[i1] < L2[i2]:

            L12[i] = ...

            i1 = ...

        else:

            L12[i] = L2[i2]

            i2 = ...

            i += 1

    while i1 < n1:

        L12[i] = ...

        i1 = i1 + 1

        i = ...

    while i2 < n2:

        L12[i] = ...

        i2 = i2 + 1

        i = ...

    return L12

 

.

REPONSE

.

Programme 

RESULTAT

L3,L4=[1,6,10,11,15,17,20],[0,7,8,9,70,55]

L1,L2=[1,6,10],[0,7,8,9]

def fusion(L1,L2):

    n1 = len(L1)

    n2 = len(L2)

    L12 = [0]*(n1+n2)

    i1 = 0

    i2 = 0

    i = 0

    while i1 < n1 and i2<n2 :

        if L1[i1] < L2[i2]:

            L12[i] = L1[i1]

            i1 = i1+1

        else:

            L12[i] = L2[i2]

            L12[i] =L2[i2]

            i2 = i2+1

        i += 1

    while i1 < n1:

        L12[i] = L1[i1]

        i1 = i1 + 1

        i = i+1

    while i2 < n2:

        L12[i] = L2[i2]

        i2 = i2 + 1

        i = i+1

    return L12

   

Il faut utiliser idle et copier la commande ci-dessous et appuyer sur entrée

fusion(L1,L2)

[0, 1, 6, 7, 8, 9, 10, 11, 15, 17, 20, 70, 55]

print(fusion(L1,L2))

[0, 1, 6, 7, 8, 9, 10]

print(fusion(L3,L3))

[1, 1, 6, 6, 10, 10, 11, 11, 15, 15, 17, 17, 20, 20]