Diminuer la taille d'une liste

Résolu
yamar -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'aimerais savoir comment je peux passer d'une liste
['1' , '2' , ':', '3', '6', ':', '4', '3']

à une liste :
['12', ':', '36', ':', '43']


Configuration: Windows / Chrome 97.0.4692.99

Pouvez-vous m'aider svp

3 réponses

  1. jee pee Messages postés 31927 Date d'inscription   Statut Modérateur Dernière intervention   9 992
     
    Bonjour,

    Tu fais une boucle sur la taille de la liste, tu concatènes l’occurrence à traiter dans une variable de travail, sauf si c'est ":", où tu crées une nouvelle valeur dans la liste de sortie, tu rajoutes la valeur ":", tu réinitialises la variable de travail, et next
    1
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Bonjour,

    Voici une manière de faire ce que propose jee pee.

    l = ['1' , '2' , ':', '3', '6', ':', '4', '3']
    l1 = list()
    for x in l:
        if x == ':' or not l1 or l1[-1] == ':':
            l1.append(x)
        else:
            l1[-1] += x
    print(l1)


    Ou plus élégant, en s'inspirant de cette discussion :

    import re
    
    l = ['1' , '2' , ':', '3', '6', ':', '4', '3']
    l1 = re.split("(:)", "".join(l))
    print(l1)


    Bonne chance
    0