motscroissants.py

Created by schraf

Created on September 15, 2018

626 Bytes

Il existe 31 mots de 5 lettres et plus dont les lettres sont en ordre croissant. Vous pourrez vérifier que la liste ci-dessous contient 32 mots, il y a donc un mot en trop ! Le retrouver en créant une fonction intrus, pour cela on pourra pour chacun des mots mettre réellement les lettres par ordre croissant et comparer si on a bien le mot d’origine. Par exemple avec le mot « sac » : « sac » trié donne « acs » qui est différent de « sac »

mots = "abces,abdos,abers,adent,agios,ainou,alors,bijou,ceins,ceint,chiot,chips,chops,choux,defis,defit,delot,demos,dents,dentu,dhikr,filmo,films,filos,filou,flops,horst,bijoux,chintz,dehors,dhikrs,filmos"


mots = "abces,abdos,abers,adent,agios,ainou,alors,bijou,ceins,ceint,chiot,chips,chops,choux,defis,defit,delot,demos,dents,dentu,dhikr,filmo,films,filos,filou,flops,horst,bijoux,chintz,dehors,dhikrs,filmos"

def intrus(mots):
  return [x for x in mots.split(",") if list(x)!=sorted(x)]
  
# intrus(mots) donne la liste ["dents"]  

def intrusv2(mots):
  for v in mots.split(","):
    if list(v)!=sorted(v) : return v
    # ou encore :
    # if v!="".join(sorted(v)): return v

# On obtient la chaine "dents" 

def intrusv3(mots):
   return list(filter(lambda v:list(v)!=sorted(v), mots.split(",")))