Trouver les mots répétés dans une phrase
RésoluBonjour,
Pourquoi ce petit programme ne marche pas ?
p = input("entrer une phrase ")
p = p.split()
print("les mots qui se répètent dans la phrase sont: " )
for x in p:
for y in p:
if (x == y and p.index(x) != p.index(y)):
print(x)
Windows / Firefox 102.0
A voir également:
- Trouver les mots répétés dans une phrase
- Trouver adresse mac - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Ou trouver les mots de passe sur android - Guide
- Url dans une phrase - Guide
- Ou trouver l'adresse ip - Guide
3 réponses
Bonjour,
Quand avec .index() tu cherches la position d'un mot, tu vas toujours trouver le premier, même s'il y en a 2.
Bonjour,
Juste pour finaliser cette discussion, une manière simple de détecter les mots répétés consiste à stocker chaque mot d'une phrase dans un dictionnaire dans lequel on garde trace du nombre d'occurrences. Tous les mots dont le compteur est strictement supérieur à 1 sont des mots répétés.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from collections import defaultdict
words = """Il en faut peu pour être heureux
Vraiment très peu pour être heureux
Il faut se satisfaire du nécessaire
Un peu d'eau fraîche et de verdure
Que nous prodigue la nature
Quelques rayons de miel et de soleil"""
map_word_count = defaultdict(int)
for word in words.lower().split():
map_word_count[word] += 1
repeated = {
word
for (word, count) in map_word_count.items()
if count > 1
}
print(repeated)
Résultat
{'il', 'pour', 'heureux', 'peu', 'de', 'faut', 'et', 'être'}
Bonne chance