python : listes et chaînes
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

python : listes et chaînes



  1. #1
    FreakyFlow

    python : listes et chaînes


    ------

    Bonjour,

    En Python,

    1)Programmer une fonction masque(s,l) prenant une liste de nombres l et une chaine s, et retournant une nouvelle chaine contenant les caractères dont les positions dans s figurent dans la liste l.
    exemple.
    >>>masque('CAGCTACCTA',[2,5,3,8])
    >>>'GACT


    2)Programmer une fonction compacter(l) prenant une liste d'entiers l et retournant la liste sans répétition.
    exemple.
    >>>compacter([88833355574441])
    >>>[835741]


    1)
    Code:
    >>> def masque(s,l):
    	res=''
    	for i in range(l):
    		res=res+'s[l[i]]'
    	return res
    2)
    Code:
    >>> def compacter(l):
    	a=l[0]
    	liste=[a]
    	for i in range(1,len(l)):
    		if l[i]==a:
    			liste=liste+[]
    		a=l[i]
    		liste=liste+[a]
    	return liste
    Je n'y arrive pas... vous pouvez m'aider?

    -----

  2. #2
    FreakyFlow

    Re : python : listes et chaînes

    petite erreur dans le code du 1) c'est : for i in l : et non for i in range(l)

  3. #3
    Arzhur

    Re : python : listes et chaînes

    bonjour,

    petite erreur dans le code du 1) c'est : for i in l : et non for i in range(l)
    c'est marrant, j'ai l'impression que avec "for i in range(l)" le code est bon...par contre avec "for i in l" le code est faux (ou alors tu as adapté la suite)

    pour le 2) il y a une erreur : tu concatènes tjrs 'a' à ta liste/chaine de caractère



    ps : liste+[a]...ça marche ça en python ? Je passe tjrs par la fct list.append()

  4. #4
    galerien69

    Re : python : listes et chaînes

    slt,

    Arzhur soulève un point à noter:
    [88...1] ca représente un tableau comprenant...un entier.
    Donc déjà, il faudrait peut etre convertir cet entier en string.
    Ensuite, à liste, qui est un non relativement mal nommé, tu as juste besoin de concaténer des caractères. +a et non +[a].
    Aussi tu conviendras qu'ajouter le caractère vide ('') n'a pas grand intérêt..

  5. A voir en vidéo sur Futura
  6. #5
    krilius

    Re : python : listes et chaînes

    Bonsoir.
    Je pense que j'ai une solution.

    Pour le 1):

    Code:
    def masque(s,l):
    	res = ''
    
    	for i in range(len(l)):
    		res = res + s[l[i]]
    
    	return res
    Pour le 2)

    Code:
    def compacter(l):
    	res = []
    
    	if l != []:
    		terme = l[0]
    		res.append(terme)
    
    		for i in range(1,len(l)):
    			if l[i] != terme:
    				res.append(l[i])
    				terme = l[i]
    
    	return res
    Petite précision : compacter([88833355574441]) ne fonctionnera pas, il faut séparer les nombres par des virgules