Liste de listes, denombrements d'occurence de sequence dans un string, methode .append et +
Hello, world!
voici un exercice simple qui consiste a trouver des occurrence de sous string dans un string.
par exemple "sse" dans "assessement" ou "an" dans "trans-panamian banana"
Pour le premier mon programme marche, pour le deuxième non.
Question subsidiaire: J' ai voulu mettre des petites listes dans une grande en utilisant .append ou + et ca ne marche pas, donc quelque chose m'echappe.
Quelqu'un voudrait-il bien m'aider?
Ah, j'allais oublier le code...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| """
Cet exercice consiste a denombrer les occurences d'un certain
segment de chaine dans une chaine
"""
# On introduit les deux variables de chaine
needle = input("segment = ")
haystack = input("chaine = ")
# On nomme leurs longueurs respectives.
l = len(needle)
h = len(haystack)
# On transformes les variables en listes.
nou = list(needle)
haye = list(haystack)
print("La liste mineure est: ", nou)
print("La liste majeure est: ", haye)
# on initialise la liste des listes candidats.
nouvelle = []
total = 0
for item in haye[0: h - l]:
p = haye.index(item)
candidat = haye[p: p + l]
print("candidat = ", candidat)
nouvelle
if candidat == nou:
# on ajoute a la liste nommee nouvelle un element, lui
# meme etant une sous-liste, nomme candidat
nouvelle = nouvelle + (candidat)
print (nouvelle)
total += 1
print (total) |
Merci a l'avance aux chevronnes.
Cet exercice vient de "Computer science circles" chapitre 8, deuxieme exercice.
Un exemple concret ou ca ne marche pas
sses
AssesSES
ASSEssesS
par exemple:
Code:
1 2 3 4
| needle = "sses"
haystack = "assesses"
print(haystack.count(needle)) |
nous donne:
>>> ================================ RESTART ================================
>>>
1
>>>
de meme
Code:
1 2 3 4
| needle = "sses"
haystack = "asses"
print(haystack.count(needle)) |
et de meme
Code:
1 2 3 4 5
|
needle = "sses"
haystack = "sses"
print(haystack.count(needle)) |
Ce n'est pas que je veux ne pas comprendre mais il y a clairement un truc qui m'echappe.